mirror of
https://github.com/qaiu/netdisk-fast-download.git
synced 2025-12-16 12:23:03 +00:00
1. 启用内嵌静态页面, 2. 蓝奏域名规则优化, 3. 反向代理优化, 4. 修复一堆细节问题
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -39,3 +39,4 @@ gradlew.bat
|
||||
unused.txt
|
||||
/web-service/src/main/generated/
|
||||
/db
|
||||
/webroot/nfd-front/
|
||||
|
||||
@@ -21,7 +21,7 @@ public class JDBCPoolInit {
|
||||
JsonObject dbConfig;
|
||||
Vertx vertx = VertxHolder.getVertxInstance();
|
||||
String url;
|
||||
private JDBCType type;
|
||||
private final JDBCType type;
|
||||
|
||||
private static JDBCPoolInit instance;
|
||||
|
||||
@@ -64,22 +64,17 @@ public class JDBCPoolInit {
|
||||
* init h2db<br>
|
||||
* 这个方法只允许调用一次
|
||||
*/
|
||||
public void initPool() {
|
||||
synchronized public void initPool() {
|
||||
if (pool != null) {
|
||||
LOGGER.error("pool 重复初始化");
|
||||
return;
|
||||
}
|
||||
|
||||
// 初始化数据库连接
|
||||
vertx.createSharedWorkerExecutor("sql-pool-init")
|
||||
.executeBlocking(() -> {
|
||||
// 初始化连接池
|
||||
pool = JDBCPool.pool(vertx, dbConfig);
|
||||
CreateTable.createTable(pool, type);
|
||||
return "数据库连接初始化: URL=" + url;
|
||||
})
|
||||
.onSuccess(LOGGER::info)
|
||||
.onFailure(Throwable::printStackTrace);
|
||||
// 初始化连接池
|
||||
pool = JDBCPool.pool(vertx, dbConfig);
|
||||
CreateTable.createTable(pool, type);
|
||||
LOGGER.info("数据库连接初始化: URL=" + url);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -87,7 +82,7 @@ public class JDBCPoolInit {
|
||||
*
|
||||
* @return pool
|
||||
*/
|
||||
public JDBCPool getPool() {
|
||||
synchronized public JDBCPool getPool() {
|
||||
return pool;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,19 +132,23 @@ public final class Deploy {
|
||||
localMap.put(GLOBAL_CONFIG, globalConfig);
|
||||
localMap.put(CUSTOM_CONFIG, customConfig);
|
||||
localMap.put(SERVER, globalConfig.getJsonObject(SERVER));
|
||||
var future0 = vertx.createSharedWorkerExecutor("other-handle").executeBlocking(bch -> {
|
||||
handle.handle(globalConfig);
|
||||
bch.complete("other handle complete");
|
||||
});
|
||||
var future0 = vertx.createSharedWorkerExecutor("other-handle")
|
||||
.executeBlocking(() -> {
|
||||
handle.handle(globalConfig);
|
||||
return "Other handle complete";
|
||||
});
|
||||
|
||||
// 部署 路由、异步service、反向代理 服务
|
||||
var future1 = vertx.deployVerticle(RouterVerticle.class, getWorkDeploymentOptions("Router"));
|
||||
var future2 = vertx.deployVerticle(ServiceVerticle.class, getWorkDeploymentOptions("Service"));
|
||||
var future3 = vertx.deployVerticle(ReverseProxyVerticle.class, getWorkDeploymentOptions("proxy"));
|
||||
future0.onSuccess(res -> {
|
||||
LOGGER.info(res);
|
||||
// 部署 路由、异步service、反向代理 服务
|
||||
var future1 = vertx.deployVerticle(RouterVerticle.class, getWorkDeploymentOptions("Router"));
|
||||
var future2 = vertx.deployVerticle(ServiceVerticle.class, getWorkDeploymentOptions("Service"));
|
||||
var future3 = vertx.deployVerticle(ReverseProxyVerticle.class, getWorkDeploymentOptions("proxy"));
|
||||
|
||||
CompositeFuture.all(future1, future2, future3, future0)
|
||||
.onSuccess(this::deployWorkVerticalSuccess)
|
||||
.onFailure(this::deployVerticalFailed);
|
||||
Future.all(future1, future2, future3)
|
||||
.onSuccess(this::deployWorkVerticalSuccess)
|
||||
.onFailure(this::deployVerticalFailed);
|
||||
}).onFailure(e -> LOGGER.error("Other handle error", e));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -38,6 +38,7 @@ import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static cn.qaiu.vx.core.util.ConfigConstant.ROUTE_TIME_OUT;
|
||||
import static cn.qaiu.vx.core.verticle.ReverseProxyVerticle.REROUTE_PATH_PREFIX;
|
||||
import static io.vertx.core.http.HttpHeaders.*;
|
||||
import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME;
|
||||
|
||||
@@ -72,20 +73,15 @@ public class RouterHandlerFactory implements BaseHttpApi {
|
||||
public Router createRouter() {
|
||||
// 主路由
|
||||
Router mainRouter = Router.router(VertxHolder.getVertxInstance());
|
||||
|
||||
// 静态资源
|
||||
String path = SharedDataUtil.getJsonConfig("server")
|
||||
.getString("staticResourcePath");
|
||||
if (!StringUtils.isEmpty(path)) {
|
||||
// 静态资源
|
||||
mainRouter.route("/*").handler(StaticHandler
|
||||
.create(path)
|
||||
.setCachingEnabled(true)
|
||||
.setDefaultContentEncoding("UTF-8"));
|
||||
}
|
||||
|
||||
|
||||
mainRouter.route().handler(ctx -> {
|
||||
String realPath = ctx.request().uri();;
|
||||
if (realPath.startsWith(REROUTE_PATH_PREFIX)) {
|
||||
// vertx web proxy暂不支持rewrite, 所以这里进行手动替换, 请求地址中的请求path前缀替换为originPath
|
||||
String rePath = realPath.substring(REROUTE_PATH_PREFIX.length());
|
||||
ctx.reroute(rePath);
|
||||
return;
|
||||
}
|
||||
|
||||
LOGGER.debug("The HTTP service request address information ===>path:{}, uri:{}, method:{}",
|
||||
ctx.request().path(), ctx.request().absoluteURI(), ctx.request().method());
|
||||
ctx.response().headers().add(ACCESS_CONTROL_ALLOW_ORIGIN, "*");
|
||||
|
||||
@@ -6,13 +6,13 @@ import io.vertx.core.Future;
|
||||
import io.vertx.core.Promise;
|
||||
import io.vertx.core.http.HttpClient;
|
||||
import io.vertx.core.http.HttpServer;
|
||||
import io.vertx.core.http.WebSocket;
|
||||
import io.vertx.core.http.HttpServerOptions;
|
||||
import io.vertx.core.json.JsonArray;
|
||||
import io.vertx.core.json.JsonObject;
|
||||
import io.vertx.core.net.PemKeyCertOptions;
|
||||
import io.vertx.ext.web.Route;
|
||||
import io.vertx.ext.web.Router;
|
||||
import io.vertx.ext.web.handler.StaticHandler;
|
||||
import io.vertx.ext.web.handler.sockjs.SockJSHandler;
|
||||
import io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions;
|
||||
import io.vertx.ext.web.proxy.handler.ProxyHandler;
|
||||
import io.vertx.httpproxy.HttpProxy;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -40,10 +40,12 @@ public class ReverseProxyVerticle extends AbstractVerticle {
|
||||
.getJsonConfig(ConfigConstant.GLOBAL_CONFIG)
|
||||
.getString("proxyConf");
|
||||
private static final Future<JsonObject> CONFIG = ConfigUtil.readYamlConfig(PATH_PROXY_CONFIG);
|
||||
private static final String DEFAULT_PATH_404 = "webroot/err/404.html";
|
||||
private static final String DEFAULT_PATH_404 = "webroot/err/page404.html";
|
||||
|
||||
private static String serverName = "Vert.x-proxy-server"; //Server name in Http response header
|
||||
|
||||
public static String REROUTE_PATH_PREFIX = "/__rrvpspp"; //re_route_vert_proxy_server_path_prefix 硬编码
|
||||
|
||||
|
||||
@Override
|
||||
public void start(Promise<Void> startPromise) throws Exception {
|
||||
@@ -74,22 +76,24 @@ public class ReverseProxyVerticle extends AbstractVerticle {
|
||||
* @param proxyConf 代理配置
|
||||
*/
|
||||
private void handleProxyConf(JsonObject proxyConf) {
|
||||
// 404 path
|
||||
if (proxyConf.containsKey("404")) {
|
||||
// page404 path
|
||||
if (proxyConf.containsKey(
|
||||
|
||||
"page404")) {
|
||||
System.getProperty("user.dir");
|
||||
String path = proxyConf.getString("404");
|
||||
String path = proxyConf.getString("page404");
|
||||
if (StringUtils.isEmpty(path)) {
|
||||
proxyConf.put("404", DEFAULT_PATH_404);
|
||||
proxyConf.put("page404", DEFAULT_PATH_404);
|
||||
} else {
|
||||
if (!path.startsWith("/")) {
|
||||
path = "/" + path;
|
||||
}
|
||||
if (!new File(System.getProperty("user.dir") + path).exists()) {
|
||||
proxyConf.put("404", DEFAULT_PATH_404);
|
||||
proxyConf.put("page404", DEFAULT_PATH_404);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
proxyConf.put("404", DEFAULT_PATH_404);
|
||||
proxyConf.put("page404", DEFAULT_PATH_404);
|
||||
}
|
||||
|
||||
final HttpClient httpClient = VertxHolder.getVertxInstance().createHttpClient();
|
||||
@@ -111,17 +115,12 @@ public class ReverseProxyVerticle extends AbstractVerticle {
|
||||
handleStatic(proxyConf.getJsonObject("static"), proxyRouter);
|
||||
}
|
||||
|
||||
// static server
|
||||
if (proxyConf.containsKey("sock")) {
|
||||
handleSock(proxyConf.getJsonArray("sock"), httpClient, proxyRouter);
|
||||
}
|
||||
|
||||
// Send 404 page
|
||||
// Send page404 page
|
||||
proxyRouter.errorHandler(404, ctx -> {
|
||||
ctx.response().sendFile(proxyConf.getString("404"));
|
||||
ctx.response().sendFile(proxyConf.getString("page404"));
|
||||
});
|
||||
|
||||
HttpServer server = vertx.createHttpServer();
|
||||
HttpServer server = getHttpsServer(proxyConf);
|
||||
server.requestHandler(proxyRouter);
|
||||
|
||||
Integer port = proxyConf.getInteger("listen");
|
||||
@@ -129,6 +128,38 @@ public class ReverseProxyVerticle extends AbstractVerticle {
|
||||
server.listen(port);
|
||||
}
|
||||
|
||||
private HttpServer getHttpsServer(JsonObject proxyConf) {
|
||||
HttpServerOptions httpServerOptions = new HttpServerOptions();
|
||||
if (proxyConf.containsKey("ssl")) {
|
||||
JsonObject sslConfig = proxyConf.getJsonObject("ssl");
|
||||
|
||||
URL sslUrl = this.getClass().getClassLoader().getResource("");
|
||||
if (sslUrl == null) {
|
||||
throw new RuntimeException("SSL url not exist...");
|
||||
}
|
||||
if (sslConfig.containsKey("enable") && sslConfig.getBoolean("enable")) {
|
||||
String sslCertificatePath = sslUrl.getPath() + sslConfig.getString("ssl_certificate");
|
||||
String sslCertificateKeyPath = sslUrl.getPath() + sslConfig.getString("ssl_certificate_key");
|
||||
LOGGER.info("enable ssl config. ");
|
||||
httpServerOptions
|
||||
.setSsl(true)
|
||||
.setKeyCertOptions(
|
||||
new PemKeyCertOptions()
|
||||
.setKeyPath(sslCertificateKeyPath)
|
||||
.setCertPath(sslCertificatePath)
|
||||
).addEnabledSecureTransportProtocol(sslConfig.getString("ssl_protocols"));
|
||||
String sslCiphers = sslConfig.getString("ssl_ciphers");
|
||||
if (sslCiphers != null && !sslCiphers.isEmpty()) {
|
||||
for (String s : sslCiphers.split(":")) {
|
||||
httpServerOptions.addEnabledCipherSuite(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return vertx.createHttpServer(httpServerOptions);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理静态资源配置
|
||||
*
|
||||
@@ -145,9 +176,12 @@ public class ReverseProxyVerticle extends AbstractVerticle {
|
||||
ctx.next();
|
||||
});
|
||||
|
||||
final StaticHandler staticHandler = StaticHandler.create();
|
||||
|
||||
StaticHandler staticHandler;
|
||||
if (staticConf.containsKey("root")) {
|
||||
staticHandler.setWebRoot(staticConf.getString("root"));
|
||||
staticHandler = StaticHandler.create(staticConf.getString("root"));
|
||||
} else {
|
||||
staticHandler = StaticHandler.create();
|
||||
}
|
||||
if (staticConf.containsKey("directory-listing")) {
|
||||
staticHandler.setDirectoryListing(staticConf.getBoolean("directory-listing"));
|
||||
@@ -178,7 +212,7 @@ public class ReverseProxyVerticle extends AbstractVerticle {
|
||||
port = 80;
|
||||
}
|
||||
String originPath = url.getPath();
|
||||
LOGGER.debug("Conf(path, originPath, host, port) ----> {},{},{},{}", path, originPath, host, port);
|
||||
LOGGER.info("Conf(path, originPath, host, port) ----> {},{},{},{}", path, originPath, host, port);
|
||||
|
||||
// 注意这里不能origin多个代理地址, 一个实例只能代理一个origin
|
||||
final HttpProxy httpProxy = HttpProxy.reverseProxy(httpClient);
|
||||
@@ -189,14 +223,21 @@ public class ReverseProxyVerticle extends AbstractVerticle {
|
||||
|
||||
// 代理目标路径为空 就像nginx一样路径穿透 (相对路径)
|
||||
if (StringUtils.isEmpty(originPath) || path.equals(originPath)) {
|
||||
proxyRouter.route(path + "*").handler(ProxyHandler.create(httpProxy));
|
||||
Route route = path.startsWith("~") ? proxyRouter.routeWithRegex(path.substring(1))
|
||||
: proxyRouter.route(path);
|
||||
route.handler(ProxyHandler.create(httpProxy));
|
||||
} else {
|
||||
proxyRouter.route(originPath + "*").handler(ProxyHandler.create(httpProxy));
|
||||
proxyRouter.route(path + "*").handler(ctx -> {
|
||||
String realPath = ctx.request().path();
|
||||
if (realPath.startsWith(path)) {
|
||||
// 配置 /api/, / => 请求 /api/test 代理后 /test
|
||||
// 配置 /api/, /xxx => 请求 /api/test 代理后 /xxx/test
|
||||
final String path0 = path;
|
||||
final String originPath0 = REROUTE_PATH_PREFIX + originPath;
|
||||
|
||||
proxyRouter.route(originPath0 + "*").handler(ProxyHandler.create(httpProxy));
|
||||
proxyRouter.route(path0 + "*").handler(ctx -> {
|
||||
String realPath = ctx.request().uri();
|
||||
if (realPath.startsWith(path0)) {
|
||||
// vertx web proxy暂不支持rewrite, 所以这里进行手动替换, 请求地址中的请求path前缀替换为originPath
|
||||
String rePath = realPath.replaceAll("^" + path, originPath);
|
||||
String rePath = realPath.replaceAll("^" + path0, originPath0);
|
||||
ctx.reroute(rePath);
|
||||
} else {
|
||||
ctx.next();
|
||||
@@ -210,54 +251,4 @@ public class ReverseProxyVerticle extends AbstractVerticle {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理websocket
|
||||
*
|
||||
* @param confList sock配置
|
||||
* @param httpClient 客户端
|
||||
* @param proxyRouter 代理路由
|
||||
*/
|
||||
private void handleSock(JsonArray confList, HttpClient httpClient, Router proxyRouter) {
|
||||
// 代理规则
|
||||
confList.stream().map(e -> (JsonObject) e).forEach(conf -> {
|
||||
|
||||
String origin = conf.getString("origin");
|
||||
String path = conf.getString("path");
|
||||
LOGGER.info("websocket proxy: {}, {}",origin,path);
|
||||
|
||||
SockJSHandlerOptions options = new SockJSHandlerOptions()
|
||||
.setHeartbeatInterval(2000)
|
||||
.setRegisterWriteHandler(true);
|
||||
|
||||
SockJSHandler sockJSHandler = SockJSHandler.create(VertxHolder.getVertxInstance(), options);
|
||||
if (!path.startsWith("/")) {
|
||||
path = "/" + path;
|
||||
}
|
||||
|
||||
|
||||
Router route = sockJSHandler.socketHandler(sock -> {
|
||||
sock.handler(buffer -> {
|
||||
Future<WebSocket> webSocketFuture = httpClient.webSocket(8086,"127.0.0.1",sock.uri());
|
||||
webSocketFuture.onSuccess(s -> {
|
||||
System.out.println(buffer.toString());
|
||||
s.write(buffer).onSuccess(v -> {
|
||||
s.handler(w->{
|
||||
System.out.println("--------"+w.toString());
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
sock.endHandler(v -> {
|
||||
|
||||
});
|
||||
sock.closeHandler(v -> {
|
||||
|
||||
});
|
||||
});
|
||||
proxyRouter.mountSubRouter("/real/serverApi/test", route);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.1 KiB |
@@ -1042,7 +1042,7 @@
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
"@jridgewell/trace-mapping" "^0.3.9"
|
||||
|
||||
"@jridgewell/resolve-uri@^3.1.0":
|
||||
"@jridgewell/resolve-uri@3.1.0":
|
||||
"integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
|
||||
"resolved" "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz"
|
||||
"version" "3.1.0"
|
||||
@@ -1208,7 +1208,15 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/eslint@^7.29.0 || ^8.4.1":
|
||||
"@types/eslint-scope@^3.7.3":
|
||||
"integrity" "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA=="
|
||||
"resolved" "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz"
|
||||
"version" "3.7.4"
|
||||
dependencies:
|
||||
"@types/eslint" "*"
|
||||
"@types/estree" "*"
|
||||
|
||||
"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1":
|
||||
"integrity" "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw=="
|
||||
"resolved" "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.10.tgz"
|
||||
"version" "8.4.10"
|
||||
@@ -1216,10 +1224,10 @@
|
||||
"@types/estree" "*"
|
||||
"@types/json-schema" "*"
|
||||
|
||||
"@types/estree@*", "@types/estree@^1.0.5":
|
||||
"integrity" "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
|
||||
"resolved" "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz"
|
||||
"version" "1.0.5"
|
||||
"@types/estree@*", "@types/estree@^1.0.0":
|
||||
"integrity" "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ=="
|
||||
"resolved" "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz"
|
||||
"version" "1.0.0"
|
||||
|
||||
"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31":
|
||||
"integrity" "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA=="
|
||||
@@ -1617,10 +1625,10 @@
|
||||
"resolved" "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz"
|
||||
"version" "1.3.0"
|
||||
|
||||
"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1":
|
||||
"integrity" "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz"
|
||||
"version" "1.12.1"
|
||||
"@webassemblyjs/ast@^1.11.5", "@webassemblyjs/ast@1.11.6":
|
||||
"integrity" "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
dependencies:
|
||||
"@webassemblyjs/helper-numbers" "1.11.6"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.6"
|
||||
@@ -1635,10 +1643,10 @@
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
|
||||
"@webassemblyjs/helper-buffer@1.12.1":
|
||||
"integrity" "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz"
|
||||
"version" "1.12.1"
|
||||
"@webassemblyjs/helper-buffer@1.11.6":
|
||||
"integrity" "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
|
||||
"@webassemblyjs/helper-numbers@1.11.6":
|
||||
"integrity" "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g=="
|
||||
@@ -1654,15 +1662,15 @@
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
|
||||
"@webassemblyjs/helper-wasm-section@1.12.1":
|
||||
"integrity" "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz"
|
||||
"version" "1.12.1"
|
||||
"@webassemblyjs/helper-wasm-section@1.11.6":
|
||||
"integrity" "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.12.1"
|
||||
"@webassemblyjs/helper-buffer" "1.12.1"
|
||||
"@webassemblyjs/ast" "1.11.6"
|
||||
"@webassemblyjs/helper-buffer" "1.11.6"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.6"
|
||||
"@webassemblyjs/wasm-gen" "1.12.1"
|
||||
"@webassemblyjs/wasm-gen" "1.11.6"
|
||||
|
||||
"@webassemblyjs/ieee754@1.11.6":
|
||||
"integrity" "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg=="
|
||||
@@ -1683,59 +1691,59 @@
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
|
||||
"@webassemblyjs/wasm-edit@^1.12.1":
|
||||
"integrity" "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz"
|
||||
"version" "1.12.1"
|
||||
"@webassemblyjs/wasm-edit@^1.11.5":
|
||||
"integrity" "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.12.1"
|
||||
"@webassemblyjs/helper-buffer" "1.12.1"
|
||||
"@webassemblyjs/ast" "1.11.6"
|
||||
"@webassemblyjs/helper-buffer" "1.11.6"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.6"
|
||||
"@webassemblyjs/helper-wasm-section" "1.12.1"
|
||||
"@webassemblyjs/wasm-gen" "1.12.1"
|
||||
"@webassemblyjs/wasm-opt" "1.12.1"
|
||||
"@webassemblyjs/wasm-parser" "1.12.1"
|
||||
"@webassemblyjs/wast-printer" "1.12.1"
|
||||
"@webassemblyjs/helper-wasm-section" "1.11.6"
|
||||
"@webassemblyjs/wasm-gen" "1.11.6"
|
||||
"@webassemblyjs/wasm-opt" "1.11.6"
|
||||
"@webassemblyjs/wasm-parser" "1.11.6"
|
||||
"@webassemblyjs/wast-printer" "1.11.6"
|
||||
|
||||
"@webassemblyjs/wasm-gen@1.12.1":
|
||||
"integrity" "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz"
|
||||
"version" "1.12.1"
|
||||
"@webassemblyjs/wasm-gen@1.11.6":
|
||||
"integrity" "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.12.1"
|
||||
"@webassemblyjs/ast" "1.11.6"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.6"
|
||||
"@webassemblyjs/ieee754" "1.11.6"
|
||||
"@webassemblyjs/leb128" "1.11.6"
|
||||
"@webassemblyjs/utf8" "1.11.6"
|
||||
|
||||
"@webassemblyjs/wasm-opt@1.12.1":
|
||||
"integrity" "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz"
|
||||
"version" "1.12.1"
|
||||
"@webassemblyjs/wasm-opt@1.11.6":
|
||||
"integrity" "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.12.1"
|
||||
"@webassemblyjs/helper-buffer" "1.12.1"
|
||||
"@webassemblyjs/wasm-gen" "1.12.1"
|
||||
"@webassemblyjs/wasm-parser" "1.12.1"
|
||||
"@webassemblyjs/ast" "1.11.6"
|
||||
"@webassemblyjs/helper-buffer" "1.11.6"
|
||||
"@webassemblyjs/wasm-gen" "1.11.6"
|
||||
"@webassemblyjs/wasm-parser" "1.11.6"
|
||||
|
||||
"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1":
|
||||
"integrity" "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz"
|
||||
"version" "1.12.1"
|
||||
"@webassemblyjs/wasm-parser@^1.11.5", "@webassemblyjs/wasm-parser@1.11.6":
|
||||
"integrity" "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.12.1"
|
||||
"@webassemblyjs/ast" "1.11.6"
|
||||
"@webassemblyjs/helper-api-error" "1.11.6"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.6"
|
||||
"@webassemblyjs/ieee754" "1.11.6"
|
||||
"@webassemblyjs/leb128" "1.11.6"
|
||||
"@webassemblyjs/utf8" "1.11.6"
|
||||
|
||||
"@webassemblyjs/wast-printer@1.12.1":
|
||||
"integrity" "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz"
|
||||
"version" "1.12.1"
|
||||
"@webassemblyjs/wast-printer@1.11.6":
|
||||
"integrity" "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A=="
|
||||
"resolved" "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz"
|
||||
"version" "1.11.6"
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.12.1"
|
||||
"@webassemblyjs/ast" "1.11.6"
|
||||
"@xtuc/long" "4.2.2"
|
||||
|
||||
"@xtuc/ieee754@^1.2.0":
|
||||
@@ -1756,10 +1764,10 @@
|
||||
"mime-types" "~2.1.34"
|
||||
"negotiator" "0.6.3"
|
||||
|
||||
"acorn-import-attributes@^1.9.5":
|
||||
"integrity" "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ=="
|
||||
"resolved" "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz"
|
||||
"version" "1.9.5"
|
||||
"acorn-import-assertions@^1.9.0":
|
||||
"integrity" "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA=="
|
||||
"resolved" "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz"
|
||||
"version" "1.9.0"
|
||||
|
||||
"acorn-jsx@^5.3.1", "acorn-jsx@^5.3.2":
|
||||
"integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
|
||||
@@ -2048,9 +2056,9 @@
|
||||
"postcss-value-parser" "^4.2.0"
|
||||
|
||||
"axios@^1.7.4":
|
||||
"integrity" "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw=="
|
||||
"resolved" "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz"
|
||||
"version" "1.7.4"
|
||||
"integrity" "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q=="
|
||||
"resolved" "https://registry.npmmirror.com/axios/-/axios-1.7.7.tgz"
|
||||
"version" "1.7.7"
|
||||
dependencies:
|
||||
"follow-redirects" "^1.15.6"
|
||||
"form-data" "^4.0.0"
|
||||
@@ -2149,10 +2157,10 @@
|
||||
"resolved" "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz"
|
||||
"version" "3.7.2"
|
||||
|
||||
"body-parser@1.20.3":
|
||||
"integrity" "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g=="
|
||||
"resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz"
|
||||
"version" "1.20.3"
|
||||
"body-parser@1.20.2":
|
||||
"integrity" "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA=="
|
||||
"resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz"
|
||||
"version" "1.20.2"
|
||||
dependencies:
|
||||
"bytes" "3.1.2"
|
||||
"content-type" "~1.0.5"
|
||||
@@ -2162,7 +2170,7 @@
|
||||
"http-errors" "2.0.0"
|
||||
"iconv-lite" "0.4.24"
|
||||
"on-finished" "2.4.1"
|
||||
"qs" "6.13.0"
|
||||
"qs" "6.11.0"
|
||||
"raw-body" "2.5.2"
|
||||
"type-is" "~1.6.18"
|
||||
"unpipe" "1.0.0"
|
||||
@@ -2197,22 +2205,22 @@
|
||||
dependencies:
|
||||
"balanced-match" "^1.0.0"
|
||||
|
||||
"braces@^3.0.3", "braces@~3.0.2":
|
||||
"braces@^3.0.2", "braces@~3.0.2":
|
||||
"integrity" "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="
|
||||
"resolved" "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
|
||||
"version" "3.0.3"
|
||||
dependencies:
|
||||
"fill-range" "^7.1.1"
|
||||
|
||||
"browserslist@^4.0.0", "browserslist@^4.16.3", "browserslist@^4.16.6", "browserslist@^4.21.10", "browserslist@^4.21.3", "browserslist@^4.21.4", "browserslist@>= 4.21.0":
|
||||
"integrity" "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA=="
|
||||
"resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz"
|
||||
"version" "4.23.3"
|
||||
"browserslist@^4.0.0", "browserslist@^4.14.5", "browserslist@^4.16.3", "browserslist@^4.16.6", "browserslist@^4.21.3", "browserslist@^4.21.4", "browserslist@>= 4.21.0":
|
||||
"integrity" "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw=="
|
||||
"resolved" "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz"
|
||||
"version" "4.21.4"
|
||||
dependencies:
|
||||
"caniuse-lite" "^1.0.30001646"
|
||||
"electron-to-chromium" "^1.5.4"
|
||||
"node-releases" "^2.0.18"
|
||||
"update-browserslist-db" "^1.1.0"
|
||||
"caniuse-lite" "^1.0.30001400"
|
||||
"electron-to-chromium" "^1.4.251"
|
||||
"node-releases" "^2.0.6"
|
||||
"update-browserslist-db" "^1.0.9"
|
||||
|
||||
"buffer-crc32@^0.2.1", "buffer-crc32@^0.2.13":
|
||||
"integrity" "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="
|
||||
@@ -2310,10 +2318,10 @@
|
||||
"lodash.memoize" "^4.1.2"
|
||||
"lodash.uniq" "^4.5.0"
|
||||
|
||||
"caniuse-lite@^1.0.0", "caniuse-lite@^1.0.30001426", "caniuse-lite@^1.0.30001646":
|
||||
"integrity" "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg=="
|
||||
"resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz"
|
||||
"version" "1.0.30001655"
|
||||
"caniuse-lite@^1.0.0", "caniuse-lite@^1.0.30001400", "caniuse-lite@^1.0.30001426":
|
||||
"integrity" "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow=="
|
||||
"resolved" "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz"
|
||||
"version" "1.0.30001442"
|
||||
|
||||
"case-sensitive-paths-webpack-plugin@^2.3.0":
|
||||
"integrity" "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw=="
|
||||
@@ -2955,12 +2963,12 @@
|
||||
|
||||
"depd@2.0.0":
|
||||
"integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
|
||||
"resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
|
||||
"destroy@1.2.0":
|
||||
"integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
|
||||
"resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz"
|
||||
"version" "1.2.0"
|
||||
|
||||
"detect-node@^2.0.4":
|
||||
@@ -3066,13 +3074,13 @@
|
||||
|
||||
"ee-first@1.1.1":
|
||||
"integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
|
||||
"resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz"
|
||||
"version" "1.1.1"
|
||||
|
||||
"electron-to-chromium@^1.5.4":
|
||||
"integrity" "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q=="
|
||||
"resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz"
|
||||
"version" "1.5.13"
|
||||
"electron-to-chromium@^1.4.251":
|
||||
"integrity" "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
|
||||
"resolved" "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz"
|
||||
"version" "1.4.284"
|
||||
|
||||
"element-ui@^2.15.14":
|
||||
"integrity" "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA=="
|
||||
@@ -3098,14 +3106,9 @@
|
||||
|
||||
"encodeurl@~1.0.2":
|
||||
"integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
|
||||
"resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz"
|
||||
"version" "1.0.2"
|
||||
|
||||
"encodeurl@~2.0.0":
|
||||
"integrity" "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="
|
||||
"resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
|
||||
"end-of-stream@^1.1.0", "end-of-stream@^1.4.1":
|
||||
"integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="
|
||||
"resolved" "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz"
|
||||
@@ -3113,10 +3116,10 @@
|
||||
dependencies:
|
||||
"once" "^1.4.0"
|
||||
|
||||
"enhanced-resolve@^5.17.1":
|
||||
"integrity" "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg=="
|
||||
"resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz"
|
||||
"version" "5.17.1"
|
||||
"enhanced-resolve@^5.15.0":
|
||||
"integrity" "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg=="
|
||||
"resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz"
|
||||
"version" "5.15.0"
|
||||
dependencies:
|
||||
"graceful-fs" "^4.2.4"
|
||||
"tapable" "^2.2.0"
|
||||
@@ -3164,10 +3167,10 @@
|
||||
"resolved" "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz"
|
||||
"version" "1.3.0"
|
||||
|
||||
"escalade@^3.1.1", "escalade@^3.1.2":
|
||||
"integrity" "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="
|
||||
"resolved" "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
|
||||
"version" "3.2.0"
|
||||
"escalade@^3.1.1":
|
||||
"integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
|
||||
"resolved" "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz"
|
||||
"version" "3.1.1"
|
||||
|
||||
"escape-html@~1.0.3":
|
||||
"integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
|
||||
@@ -3362,7 +3365,7 @@
|
||||
|
||||
"etag@~1.8.1":
|
||||
"integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
|
||||
"resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz"
|
||||
"version" "1.8.1"
|
||||
|
||||
"event-pubsub@4.3.0":
|
||||
@@ -3422,36 +3425,36 @@
|
||||
"strip-final-newline" "^2.0.0"
|
||||
|
||||
"express@^4.17.3":
|
||||
"integrity" "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng=="
|
||||
"resolved" "https://registry.npmjs.org/express/-/express-4.21.0.tgz"
|
||||
"version" "4.21.0"
|
||||
"integrity" "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q=="
|
||||
"resolved" "https://registry.npmjs.org/express/-/express-4.19.2.tgz"
|
||||
"version" "4.19.2"
|
||||
dependencies:
|
||||
"accepts" "~1.3.8"
|
||||
"array-flatten" "1.1.1"
|
||||
"body-parser" "1.20.3"
|
||||
"body-parser" "1.20.2"
|
||||
"content-disposition" "0.5.4"
|
||||
"content-type" "~1.0.4"
|
||||
"cookie" "0.6.0"
|
||||
"cookie-signature" "1.0.6"
|
||||
"debug" "2.6.9"
|
||||
"depd" "2.0.0"
|
||||
"encodeurl" "~2.0.0"
|
||||
"encodeurl" "~1.0.2"
|
||||
"escape-html" "~1.0.3"
|
||||
"etag" "~1.8.1"
|
||||
"finalhandler" "1.3.1"
|
||||
"finalhandler" "1.2.0"
|
||||
"fresh" "0.5.2"
|
||||
"http-errors" "2.0.0"
|
||||
"merge-descriptors" "1.0.3"
|
||||
"merge-descriptors" "1.0.1"
|
||||
"methods" "~1.1.2"
|
||||
"on-finished" "2.4.1"
|
||||
"parseurl" "~1.3.3"
|
||||
"path-to-regexp" "0.1.10"
|
||||
"path-to-regexp" "0.1.7"
|
||||
"proxy-addr" "~2.0.7"
|
||||
"qs" "6.13.0"
|
||||
"qs" "6.11.0"
|
||||
"range-parser" "~1.2.1"
|
||||
"safe-buffer" "5.2.1"
|
||||
"send" "0.19.0"
|
||||
"serve-static" "1.16.2"
|
||||
"send" "0.18.0"
|
||||
"serve-static" "1.15.0"
|
||||
"setprototypeof" "1.2.0"
|
||||
"statuses" "2.0.1"
|
||||
"type-is" "~1.6.18"
|
||||
@@ -3533,13 +3536,13 @@
|
||||
dependencies:
|
||||
"to-regex-range" "^5.0.1"
|
||||
|
||||
"finalhandler@1.3.1":
|
||||
"integrity" "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ=="
|
||||
"resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz"
|
||||
"version" "1.3.1"
|
||||
"finalhandler@1.2.0":
|
||||
"integrity" "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg=="
|
||||
"resolved" "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz"
|
||||
"version" "1.2.0"
|
||||
dependencies:
|
||||
"debug" "2.6.9"
|
||||
"encodeurl" "~2.0.0"
|
||||
"encodeurl" "~1.0.2"
|
||||
"escape-html" "~1.0.3"
|
||||
"on-finished" "2.4.1"
|
||||
"parseurl" "~1.3.3"
|
||||
@@ -3602,7 +3605,7 @@
|
||||
|
||||
"fresh@0.5.2":
|
||||
"integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
|
||||
"resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz"
|
||||
"version" "0.5.2"
|
||||
|
||||
"fs-constants@^1.0.0":
|
||||
@@ -3717,7 +3720,7 @@
|
||||
|
||||
"glob-to-regexp@^0.4.1":
|
||||
"integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
|
||||
"resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
|
||||
"version" "0.4.1"
|
||||
|
||||
"glob@^7.1.3", "glob@^7.1.4", "glob@^7.2.3":
|
||||
@@ -3777,10 +3780,10 @@
|
||||
dependencies:
|
||||
"get-intrinsic" "^1.1.3"
|
||||
|
||||
"graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.11", "graceful-fs@^4.2.4", "graceful-fs@^4.2.6":
|
||||
"integrity" "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
|
||||
"resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
|
||||
"version" "4.2.11"
|
||||
"graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.4", "graceful-fs@^4.2.6", "graceful-fs@^4.2.9":
|
||||
"integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
|
||||
"resolved" "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz"
|
||||
"version" "4.2.10"
|
||||
|
||||
"gzip-size@^6.0.0":
|
||||
"integrity" "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q=="
|
||||
@@ -3936,7 +3939,7 @@
|
||||
|
||||
"http-errors@2.0.0":
|
||||
"integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="
|
||||
"resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
dependencies:
|
||||
"depd" "2.0.0"
|
||||
@@ -4518,10 +4521,10 @@
|
||||
dependencies:
|
||||
"fs-monkey" "^1.0.3"
|
||||
|
||||
"merge-descriptors@1.0.3":
|
||||
"integrity" "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ=="
|
||||
"resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz"
|
||||
"version" "1.0.3"
|
||||
"merge-descriptors@1.0.1":
|
||||
"integrity" "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
|
||||
"resolved" "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"merge-source-map@^1.1.0":
|
||||
"integrity" "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw=="
|
||||
@@ -4546,11 +4549,11 @@
|
||||
"version" "1.1.2"
|
||||
|
||||
"micromatch@^4.0.2", "micromatch@^4.0.4", "micromatch@^4.0.5":
|
||||
"integrity" "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="
|
||||
"resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz"
|
||||
"version" "4.0.8"
|
||||
"integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA=="
|
||||
"resolved" "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz"
|
||||
"version" "4.0.5"
|
||||
dependencies:
|
||||
"braces" "^3.0.3"
|
||||
"braces" "^3.0.2"
|
||||
"picomatch" "^2.3.1"
|
||||
|
||||
"mime-db@>= 1.43.0 < 2", "mime-db@1.52.0":
|
||||
@@ -4567,7 +4570,7 @@
|
||||
|
||||
"mime@1.6.0":
|
||||
"integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
|
||||
"resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz"
|
||||
"version" "1.6.0"
|
||||
|
||||
"mimic-fn@^1.0.0":
|
||||
@@ -4686,12 +4689,12 @@
|
||||
|
||||
"ms@2.0.0":
|
||||
"integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||
"resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
|
||||
"ms@2.1.3":
|
||||
"integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
||||
"resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
|
||||
"version" "2.1.3"
|
||||
|
||||
"multicast-dns@^7.2.5":
|
||||
@@ -4756,10 +4759,10 @@
|
||||
"resolved" "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz"
|
||||
"version" "1.3.1"
|
||||
|
||||
"node-releases@^2.0.18":
|
||||
"integrity" "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g=="
|
||||
"resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz"
|
||||
"version" "2.0.18"
|
||||
"node-releases@^2.0.6":
|
||||
"integrity" "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A=="
|
||||
"resolved" "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.8.tgz"
|
||||
"version" "2.0.8"
|
||||
|
||||
"normalize-package-data@^2.5.0":
|
||||
"integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="
|
||||
@@ -4823,9 +4826,9 @@
|
||||
"version" "4.1.1"
|
||||
|
||||
"object-inspect@^1.13.1":
|
||||
"integrity" "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g=="
|
||||
"resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz"
|
||||
"version" "1.13.2"
|
||||
"integrity" "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
|
||||
"resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz"
|
||||
"version" "1.13.1"
|
||||
|
||||
"object-keys@^1.1.1":
|
||||
"integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
|
||||
@@ -4849,7 +4852,7 @@
|
||||
|
||||
"on-finished@2.4.1":
|
||||
"integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="
|
||||
"resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz"
|
||||
"version" "2.4.1"
|
||||
dependencies:
|
||||
"ee-first" "1.1.1"
|
||||
@@ -5040,10 +5043,10 @@
|
||||
"resolved" "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz"
|
||||
"version" "1.0.7"
|
||||
|
||||
"path-to-regexp@0.1.10":
|
||||
"integrity" "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w=="
|
||||
"resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz"
|
||||
"version" "0.1.10"
|
||||
"path-to-regexp@0.1.7":
|
||||
"integrity" "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
|
||||
"resolved" "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
|
||||
"version" "0.1.7"
|
||||
|
||||
"path-type@^4.0.0":
|
||||
"integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
|
||||
@@ -5055,10 +5058,10 @@
|
||||
"resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz"
|
||||
"version" "0.2.1"
|
||||
|
||||
"picocolors@^1.0.0", "picocolors@^1.0.1":
|
||||
"integrity" "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
|
||||
"resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
"picocolors@^1.0.0":
|
||||
"integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
|
||||
"resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz"
|
||||
"version" "1.0.0"
|
||||
|
||||
"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1":
|
||||
"integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
|
||||
@@ -5432,12 +5435,12 @@
|
||||
"pngjs" "^5.0.0"
|
||||
"yargs" "^15.3.1"
|
||||
|
||||
"qs@6.13.0":
|
||||
"integrity" "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="
|
||||
"resolved" "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz"
|
||||
"version" "6.13.0"
|
||||
"qs@6.11.0":
|
||||
"integrity" "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q=="
|
||||
"resolved" "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz"
|
||||
"version" "6.11.0"
|
||||
dependencies:
|
||||
"side-channel" "^1.0.6"
|
||||
"side-channel" "^1.0.4"
|
||||
|
||||
"queue-microtask@^1.2.2":
|
||||
"integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
|
||||
@@ -5826,10 +5829,10 @@
|
||||
"resolved" "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz"
|
||||
"version" "5.7.1"
|
||||
|
||||
"send@0.19.0":
|
||||
"integrity" "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="
|
||||
"resolved" "https://registry.npmjs.org/send/-/send-0.19.0.tgz"
|
||||
"version" "0.19.0"
|
||||
"send@0.18.0":
|
||||
"integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg=="
|
||||
"resolved" "https://registry.npmmirror.com/send/-/send-0.18.0.tgz"
|
||||
"version" "0.18.0"
|
||||
dependencies:
|
||||
"debug" "2.6.9"
|
||||
"depd" "2.0.0"
|
||||
@@ -5872,15 +5875,15 @@
|
||||
"mime-types" "~2.1.17"
|
||||
"parseurl" "~1.3.2"
|
||||
|
||||
"serve-static@1.16.2":
|
||||
"integrity" "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw=="
|
||||
"resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz"
|
||||
"version" "1.16.2"
|
||||
"serve-static@1.15.0":
|
||||
"integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g=="
|
||||
"resolved" "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz"
|
||||
"version" "1.15.0"
|
||||
dependencies:
|
||||
"encodeurl" "~2.0.0"
|
||||
"encodeurl" "~1.0.2"
|
||||
"escape-html" "~1.0.3"
|
||||
"parseurl" "~1.3.3"
|
||||
"send" "0.19.0"
|
||||
"send" "0.18.0"
|
||||
|
||||
"set-blocking@^2.0.0":
|
||||
"integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
|
||||
@@ -5906,7 +5909,7 @@
|
||||
|
||||
"setprototypeof@1.2.0":
|
||||
"integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
|
||||
"resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz"
|
||||
"version" "1.2.0"
|
||||
|
||||
"shallow-clone@^3.0.0":
|
||||
@@ -5945,7 +5948,7 @@
|
||||
"resolved" "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.4.tgz"
|
||||
"version" "1.7.4"
|
||||
|
||||
"side-channel@^1.0.6":
|
||||
"side-channel@^1.0.4":
|
||||
"integrity" "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA=="
|
||||
"resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz"
|
||||
"version" "1.0.6"
|
||||
@@ -6093,7 +6096,7 @@
|
||||
|
||||
"statuses@2.0.1":
|
||||
"integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
|
||||
"resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz"
|
||||
"version" "2.0.1"
|
||||
|
||||
"string_decoder@^1.1.1":
|
||||
@@ -6252,21 +6255,21 @@
|
||||
"mkdirp" "^1.0.3"
|
||||
"yallist" "^4.0.0"
|
||||
|
||||
"terser-webpack-plugin@^5.1.1", "terser-webpack-plugin@^5.3.10":
|
||||
"integrity" "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w=="
|
||||
"resolved" "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz"
|
||||
"version" "5.3.10"
|
||||
"terser-webpack-plugin@^5.1.1", "terser-webpack-plugin@^5.3.7":
|
||||
"integrity" "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA=="
|
||||
"resolved" "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz"
|
||||
"version" "5.3.9"
|
||||
dependencies:
|
||||
"@jridgewell/trace-mapping" "^0.3.20"
|
||||
"@jridgewell/trace-mapping" "^0.3.17"
|
||||
"jest-worker" "^27.4.5"
|
||||
"schema-utils" "^3.1.1"
|
||||
"serialize-javascript" "^6.0.1"
|
||||
"terser" "^5.26.0"
|
||||
"terser" "^5.16.8"
|
||||
|
||||
"terser@^5.10.0", "terser@^5.26.0":
|
||||
"integrity" "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg=="
|
||||
"resolved" "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz"
|
||||
"version" "5.31.6"
|
||||
"terser@^5.10.0", "terser@^5.16.8":
|
||||
"integrity" "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA=="
|
||||
"resolved" "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz"
|
||||
"version" "5.19.2"
|
||||
dependencies:
|
||||
"@jridgewell/source-map" "^0.3.3"
|
||||
"acorn" "^8.8.2"
|
||||
@@ -6332,7 +6335,7 @@
|
||||
|
||||
"toidentifier@1.0.1":
|
||||
"integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
|
||||
"resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"totalist@^1.0.0":
|
||||
@@ -6424,16 +6427,16 @@
|
||||
|
||||
"unpipe@~1.0.0", "unpipe@1.0.0":
|
||||
"integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
|
||||
"resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz"
|
||||
"version" "1.0.0"
|
||||
|
||||
"update-browserslist-db@^1.1.0":
|
||||
"integrity" "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ=="
|
||||
"resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz"
|
||||
"version" "1.1.0"
|
||||
"update-browserslist-db@^1.0.9":
|
||||
"integrity" "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ=="
|
||||
"resolved" "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz"
|
||||
"version" "1.0.10"
|
||||
dependencies:
|
||||
"escalade" "^3.1.2"
|
||||
"picocolors" "^1.0.1"
|
||||
"escalade" "^3.1.1"
|
||||
"picocolors" "^1.0.0"
|
||||
|
||||
"uri-js@^4.2.2", "uri-js@^4.4.1":
|
||||
"integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
|
||||
@@ -6550,10 +6553,10 @@
|
||||
"@vue/compiler-sfc" "2.7.16"
|
||||
"csstype" "^3.1.0"
|
||||
|
||||
"watchpack@^2.4.1":
|
||||
"integrity" "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw=="
|
||||
"resolved" "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz"
|
||||
"version" "2.4.2"
|
||||
"watchpack@^2.4.0":
|
||||
"integrity" "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg=="
|
||||
"resolved" "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz"
|
||||
"version" "2.4.0"
|
||||
dependencies:
|
||||
"glob-to-regexp" "^0.4.1"
|
||||
"graceful-fs" "^4.1.2"
|
||||
@@ -6673,32 +6676,33 @@
|
||||
"version" "0.4.6"
|
||||
|
||||
"webpack@^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.1.0 || ^5.0.0-0", "webpack@^4.27.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", "webpack@^5.0.0", "webpack@^5.1.0", "webpack@^5.20.0", "webpack@^5.54.0", "webpack@>=2":
|
||||
"integrity" "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg=="
|
||||
"resolved" "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz"
|
||||
"version" "5.94.0"
|
||||
"integrity" "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ=="
|
||||
"resolved" "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz"
|
||||
"version" "5.88.2"
|
||||
dependencies:
|
||||
"@types/estree" "^1.0.5"
|
||||
"@webassemblyjs/ast" "^1.12.1"
|
||||
"@webassemblyjs/wasm-edit" "^1.12.1"
|
||||
"@webassemblyjs/wasm-parser" "^1.12.1"
|
||||
"@types/eslint-scope" "^3.7.3"
|
||||
"@types/estree" "^1.0.0"
|
||||
"@webassemblyjs/ast" "^1.11.5"
|
||||
"@webassemblyjs/wasm-edit" "^1.11.5"
|
||||
"@webassemblyjs/wasm-parser" "^1.11.5"
|
||||
"acorn" "^8.7.1"
|
||||
"acorn-import-attributes" "^1.9.5"
|
||||
"browserslist" "^4.21.10"
|
||||
"acorn-import-assertions" "^1.9.0"
|
||||
"browserslist" "^4.14.5"
|
||||
"chrome-trace-event" "^1.0.2"
|
||||
"enhanced-resolve" "^5.17.1"
|
||||
"enhanced-resolve" "^5.15.0"
|
||||
"es-module-lexer" "^1.2.1"
|
||||
"eslint-scope" "5.1.1"
|
||||
"events" "^3.2.0"
|
||||
"glob-to-regexp" "^0.4.1"
|
||||
"graceful-fs" "^4.2.11"
|
||||
"graceful-fs" "^4.2.9"
|
||||
"json-parse-even-better-errors" "^2.3.1"
|
||||
"loader-runner" "^4.2.0"
|
||||
"mime-types" "^2.1.27"
|
||||
"neo-async" "^2.6.2"
|
||||
"schema-utils" "^3.2.0"
|
||||
"tapable" "^2.1.1"
|
||||
"terser-webpack-plugin" "^5.3.10"
|
||||
"watchpack" "^2.4.1"
|
||||
"terser-webpack-plugin" "^5.3.7"
|
||||
"watchpack" "^2.4.0"
|
||||
"webpack-sources" "^3.2.3"
|
||||
|
||||
"websocket-driver@^0.7.4", "websocket-driver@>=0.5.1":
|
||||
|
||||
@@ -4,16 +4,13 @@ server:
|
||||
contextPath: /
|
||||
# 使用数据库
|
||||
enableDatabase: true
|
||||
# 使用静态页面
|
||||
enableStaticHtmlService: false
|
||||
staticResourcePath: webroot/
|
||||
# 服务域名或者IP
|
||||
# 服务域名或者IP 生成二维码链接时需要
|
||||
domainName: https://lz.qaiu.top
|
||||
|
||||
# 反向代理服务器配置路径(不用加后缀)
|
||||
proxyConf: server-proxy
|
||||
|
||||
# vertx线程配置 事件循环线程配置为0: eventLoopPoolSize将会采用默认配置(CPU核心*2) workerPoolSize将会采用默认20
|
||||
# vertx线程配置, 为0表示eventLoopPoolSize将会采用默认配置(CPU核心*2) workerPoolSize将会采用默认20
|
||||
vertx:
|
||||
eventLoopPoolSize: 0
|
||||
workerPoolSize: 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
### PASS 蓝奏云
|
||||
# @no-redirect
|
||||
GET http://127.0.0.1:6400/parser?url=https://www.lanzoux.com/ia2cntg
|
||||
GET http://127.0.0.1:6400/parser?url=https://www123-asd111.lanzoux.com/ia2cntg
|
||||
|
||||
### 蓝奏云
|
||||
# @no-redirect
|
||||
@@ -176,4 +176,20 @@ POST http://127.0.0.1:6400/v2/login?username=asd
|
||||
|
||||
|
||||
|
||||
### 6401/v2
|
||||
GET http://127.0.0.1:6401/v2/linkInfo?url=https://pan.seeoss.com/s/nLNsQ&pwd=DcGe
|
||||
|
||||
|
||||
|
||||
### PASS QQ
|
||||
# @no-redirect
|
||||
GET http://127.0.0.1:6401/parser?url=https://iwx.mail.qq.com/ftn/download?func=3&key=qweqe&code=8c02cf57&k=asdad
|
||||
|
||||
|
||||
### PASS QQ
|
||||
# @no-redirect
|
||||
GET http://127.0.0.1:6401/json/parser?url=https://iwx.mail.qq.com/ftn/download?func=3&key=qweqe&code=8c02cf57&k=asdad
|
||||
|
||||
### n1
|
||||
http://127.0.0.1:6401/n1/statisticsInfo
|
||||
|
||||
|
||||
@@ -1,22 +1,43 @@
|
||||
# 反向代理
|
||||
server-name: Vert.x-proxy-server(v4.1.2)
|
||||
|
||||
#proxy:
|
||||
# - listen: 8085
|
||||
# # 404的路径
|
||||
# 404: webroot/real-html/index.html
|
||||
# static:
|
||||
# path: /
|
||||
## add-headers:
|
||||
## x-token: ABC
|
||||
# root: webroot/real-html/
|
||||
# index: realIndex
|
||||
# location:
|
||||
# - path: /real/
|
||||
# origin: 127.0.0.1:8088
|
||||
# - path: /api/
|
||||
# origin: 127.0.0.1:7070/demo/
|
||||
#
|
||||
proxy:
|
||||
- listen: 6401
|
||||
# 404的路径
|
||||
page404: webroot/err/404.html
|
||||
static:
|
||||
path: /
|
||||
add-headers:
|
||||
x-token: ABC
|
||||
root: webroot/nfd-front/
|
||||
# index: index.html
|
||||
# ~开通表示正则匹配否则为前缀匹配, 当origin带子路径时进行路由重写,
|
||||
# 1.origin代理地址端口后有目录(包括 / ),转发后地址:代理地址+访问URL目录部分去除location匹配目录
|
||||
# 2.origin代理地址端口后无任何,转发后地址:代理地址+访问URL目录部
|
||||
location:
|
||||
- path: ~^/(json/|v2/|parser).*
|
||||
origin: 127.0.0.1:6400
|
||||
|
||||
# json/parser -> xxx/parser
|
||||
# - path: /json/
|
||||
# origin: 127.0.0.1:6400/
|
||||
- path: /n1/
|
||||
origin: 127.0.0.1:6400/v2/
|
||||
|
||||
# # SSL HTTPS配置
|
||||
ssl:
|
||||
enable: false
|
||||
# 强制https 暂不支持
|
||||
#ssl_force: true
|
||||
# SSL 协议版本
|
||||
ssl_protocols: TLSv1.2
|
||||
# 证书
|
||||
ssl_certificate: ssl/server.pem
|
||||
# 私钥
|
||||
ssl_certificate_key: ssl/privkey.key
|
||||
# 加密套件 ssl_ciphers 暂不支持
|
||||
# ssl_ciphers: AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
|
||||
|
||||
# - listen: 8086
|
||||
# static:
|
||||
# path: /t2/
|
||||
|
||||
15
web-service/src/main/resources/ssl/privkey.key
Normal file
15
web-service/src/main/resources/ssl/privkey.key
Normal file
@@ -0,0 +1,15 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXgIBAAKBgQDdpOpVrYhr6bMddEbbVXQebA24vMLJylHoOngN09Rx8KM/wJZz
|
||||
4zDPNJJumsQz/kyAX1pd70rxdNb4MLq/ToVlzKIct45y1HvzVzVZA78gP3OKfO9w
|
||||
JZ+d+MLLw8kmtL2PQSMi0HNHm5LsMyON5eScyBPCR0D2P0bydEiv3df7mwIDAQAB
|
||||
AoGAHDILgWS28wtitr+A+Avx3qDeSf7xRJxRORqfBRtKbkgvbD/Co/Fl1yYX7qwP
|
||||
g5G5B6eZplN3lCnJ4v7H8ug5PdJg3RuGmR4EYTx2k/nd/hGNRZfUgWHCII6BjGxN
|
||||
14n1BcZtDVPR8yvcUXKjlpCemMUQE1xzVLO2nEq/gJtEWpkCQQDzZ4hYjpV6Tsy+
|
||||
DN2oLqAtuyeudM2ZSN6ubnEr+OsBfNlHd38z8liCRztAQkBNgrfGqlng79j5fL/p
|
||||
s/8N5mcvAkEA6R0d/FFe4lBNSxPFrzW73mY2AK5ebuAuB3punkDuS5nkBW+1Jg9p
|
||||
j+ZZrqYv1ZNR7pAN5DkRBPV2c/y2n3WXVQJBAK0RlbIaGBDyTMRpk4YNORmrNKjo
|
||||
JnRyituObevtPvQ82KXnQswl6mcfzPKA6QX0B0Y8RFIbWLT0zeSXdqhkhkMCQQCR
|
||||
SdJ8hgKLLt1do48b6nOS40VZG1RD6nkFtCrpezKJ7/oL4VmXxRdX1ouirHU3ub/g
|
||||
3euqiF6xJoOTOrhfnhyZAkEAncfWxN1U969lkfNo7ECPJEP2RJzZVcb5PJYab1NL
|
||||
ccI6qxt/hwNk3NYYEWXavICowVVUNhn2MakeY9cXRlbs3w==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
13
web-service/src/main/resources/ssl/server.pem
Normal file
13
web-service/src/main/resources/ssl/server.pem
Normal file
@@ -0,0 +1,13 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIB9jCCAV8CFEC4MswPv8GgOAulmgIMioLiNn6GMA0GCSqGSIb3DQEBCwUAMDox
|
||||
CzAJBgNVBAYTAmNuMQ0wCwYDVQQIDARxYWl1MQ0wCwYDVQQHDARxYWl1MQ0wCwYD
|
||||
VQQKDARxYWl1MB4XDTI0MTAwMzIxMDM1MFoXDTM0MTAwMTIxMDM1MFowOjELMAkG
|
||||
A1UEBhMCY24xDTALBgNVBAgMBHFhaXUxDTALBgNVBAcMBHFhaXUxDTALBgNVBAoM
|
||||
BHFhaXUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN2k6lWtiGvpsx10RttV
|
||||
dB5sDbi8wsnKUeg6eA3T1HHwoz/AlnPjMM80km6axDP+TIBfWl3vSvF01vgwur9O
|
||||
hWXMohy3jnLUe/NXNVkDvyA/c4p873Aln534wsvDySa0vY9BIyLQc0ebkuwzI43l
|
||||
5JzIE8JHQPY/RvJ0SK/d1/ubAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAOGALPb49
|
||||
rQWM2gctt4jZECtV9t8/eU5XArtNuf3ixKZVmg5LEOmSQ8v9Qs20l5KwIBxiyKIz
|
||||
GW7kip1lF5gp/sxuYHOSzVhhpbRZkQsANf7yUpAZtlHP4W4vgf+pdZ8DcF/az9KT
|
||||
Ne9Z+nkXdXoTp9E4PQqbgAteWFRcg5MjbsE=
|
||||
-----END CERTIFICATE-----
|
||||
71
web-service/src/main/resources/ssl/自签证书说明.md
Normal file
71
web-service/src/main/resources/ssl/自签证书说明.md
Normal file
@@ -0,0 +1,71 @@
|
||||
OpenSSL 证书
|
||||
|
||||
第一步:生成私钥
|
||||
|
||||
在使用 openssl 生成 SSL 证书之前,我们需要先生成私钥。可以使用如下命令行来生成私钥:
|
||||
|
||||
```
|
||||
|
||||
openssl genrsa -out key.pem 1024
|
||||
|
||||
```
|
||||
|
||||
在这个命令中,我们使用了 genrsa 子命令,并且设置了输出文件的名称,以及私钥的长度为 1024。运行此命令会在当前文件夹中生成一个 key.pem 文件,这个文件就是我们所需要的私钥文件。
|
||||
|
||||
第二步:生成证书请求
|
||||
|
||||
有了私钥之后,我们就可以生成证书请求了。在使用 openssl 生成证书请求时,可以按照以下命令行来执行:
|
||||
|
||||
```
|
||||
|
||||
openssl req -new -key key.pem -out csr.pem
|
||||
|
||||
```
|
||||
|
||||
在这个命令中,我们使用 req 子命令,并且按照要求设置了私钥和输出文件名。在生成证书请求时,需要输入一些信息,比如你的城市,国家等信息,请根据需求填写相应的信息。
|
||||
|
||||
第三步:签名证书请求
|
||||
|
||||
生成证书请求后,我们需要将证书请求发送给证书颁发机构进行签名。为了在服务器上轻松地创建自签名的 SSL 证书,我们可以使用类似如下的命令或使用 CA 来签署证书请求:
|
||||
|
||||
```
|
||||
|
||||
openssl x509 -req -in csr.pem -out cert.pem -signkey key.pem -days 3650
|
||||
|
||||
```
|
||||
|
||||
在这个命令中,我们使用了 x509 命令,并且指定了证书请求文件名和输出文件名。我们还使用了 -signkey 选项来指定要使用的私钥文件,以便签署证书。再需要指定 -days 选项均是附带了,控制证书的有效期。
|
||||
|
||||
这些选项组合将使用我们之前生成的私钥来签署证书请求,并将其输出到我们指定的文件 cert.pem 中。
|
||||
|
||||
第四步:配置服务器
|
||||
|
||||
在拥有 SSL 证书之后,我们需要将其配置到服务器当中。不同的 Web 服务器和操作系统可能需要不同的配置方式。在这里以 Nginx 服务器作为例子,以简单介绍如何启用 HTTPS。
|
||||
|
||||
首先,请将服务器的私钥和证书文件(key.pem 和 cert.pem)上传到服务器上。
|
||||
|
||||
然后,请在 Nginx 的配置文件中添加以下内容:
|
||||
|
||||
```
|
||||
|
||||
server {
|
||||
|
||||
listen 443;
|
||||
|
||||
server_name your-domain.com;
|
||||
|
||||
ssl on;
|
||||
|
||||
ssl_certificate /path/to/cert.pem;
|
||||
|
||||
ssl_certificate_key /path/to/key.pem;
|
||||
|
||||
# other server configurations…
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
其中,在 ssl_certificate 中指定证书文件的路径(cert.pem),在 ssl_certificate_key 中指定私钥文件的路径(key.pem)。之后重启 Nginx 服务器即可启用 HTTPS。
|
||||
|
||||
在实际项目中,使用 openssl 工具来生成 SSL 证书是常见的一个方法。通过以上的介绍,大家可以了解到 openssl 证书的生成步骤,并能够轻松地将证书配置到自己的 Web 服务器上,确保网站的数据传输安全,提升用户的信任度。
|
||||
@@ -2,7 +2,7 @@ package cn.qaiu.vx.core.util;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class ParamUtilTest {
|
||||
|
||||
@@ -11,5 +11,10 @@ public class ParamUtilTest {
|
||||
System.out.println(ParamUtil.paramsToMap(""));
|
||||
System.out.println(ParamUtil.paramsToMap("a=asd&d=23"));
|
||||
System.out.println(ParamUtil.paramsToMap("asdasd&dd"));
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Pattern pattern = Pattern.compile("^(/v2/|/json/).*");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user