diff --git a/.gitignore b/.gitignore
index a45af58..0e39e99 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,3 +39,4 @@ gradlew.bat
unused.txt
/web-service/src/main/generated/
/db
+/webroot/nfd-front/
diff --git a/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java b/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java
index a82fac7..2fdbcb9 100644
--- a/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java
+++ b/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java
@@ -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
* 这个方法只允许调用一次
*/
- 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;
}
}
diff --git a/core/src/main/java/cn/qaiu/vx/core/Deploy.java b/core/src/main/java/cn/qaiu/vx/core/Deploy.java
index c25e5c3..352df8d 100644
--- a/core/src/main/java/cn/qaiu/vx/core/Deploy.java
+++ b/core/src/main/java/cn/qaiu/vx/core/Deploy.java
@@ -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));
}
/**
diff --git a/core/src/main/java/cn/qaiu/vx/core/handlerfactory/RouterHandlerFactory.java b/core/src/main/java/cn/qaiu/vx/core/handlerfactory/RouterHandlerFactory.java
index 5bc5de1..d7c1b23 100644
--- a/core/src/main/java/cn/qaiu/vx/core/handlerfactory/RouterHandlerFactory.java
+++ b/core/src/main/java/cn/qaiu/vx/core/handlerfactory/RouterHandlerFactory.java
@@ -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, "*");
diff --git a/core/src/main/java/cn/qaiu/vx/core/verticle/ReverseProxyVerticle.java b/core/src/main/java/cn/qaiu/vx/core/verticle/ReverseProxyVerticle.java
index e084ec0..8f35fcc 100644
--- a/core/src/main/java/cn/qaiu/vx/core/verticle/ReverseProxyVerticle.java
+++ b/core/src/main/java/cn/qaiu/vx/core/verticle/ReverseProxyVerticle.java
@@ -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 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 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 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);
- });
-
-
- }
}
diff --git a/web-front/public/avator.png b/web-front/public/avator.png
deleted file mode 100644
index 24f52a9..0000000
Binary files a/web-front/public/avator.png and /dev/null differ
diff --git a/web-front/yarn.lock b/web-front/yarn.lock
index db22ad9..ca3b9fe 100644
--- a/web-front/yarn.lock
+++ b/web-front/yarn.lock
@@ -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":
diff --git a/web-service/src/main/resources/app-dev.yml b/web-service/src/main/resources/app-dev.yml
index 061d04a..14e5a98 100644
--- a/web-service/src/main/resources/app-dev.yml
+++ b/web-service/src/main/resources/app-dev.yml
@@ -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
diff --git a/web-service/src/main/resources/http-tools/test.http b/web-service/src/main/resources/http-tools/test.http
index be08ee6..e6f1273 100644
--- a/web-service/src/main/resources/http-tools/test.http
+++ b/web-service/src/main/resources/http-tools/test.http
@@ -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
diff --git a/web-service/src/main/resources/server-proxy.yml b/web-service/src/main/resources/server-proxy.yml
index 8dee0fa..7a1f311 100644
--- a/web-service/src/main/resources/server-proxy.yml
+++ b/web-service/src/main/resources/server-proxy.yml
@@ -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/
diff --git a/web-service/src/main/resources/ssl/privkey.key b/web-service/src/main/resources/ssl/privkey.key
new file mode 100644
index 0000000..bba161d
--- /dev/null
+++ b/web-service/src/main/resources/ssl/privkey.key
@@ -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-----
diff --git a/web-service/src/main/resources/ssl/server.pem b/web-service/src/main/resources/ssl/server.pem
new file mode 100644
index 0000000..6dd60ee
--- /dev/null
+++ b/web-service/src/main/resources/ssl/server.pem
@@ -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-----
diff --git a/web-service/src/main/resources/ssl/自签证书说明.md b/web-service/src/main/resources/ssl/自签证书说明.md
new file mode 100644
index 0000000..92ef0bf
--- /dev/null
+++ b/web-service/src/main/resources/ssl/自签证书说明.md
@@ -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 服务器上,确保网站的数据传输安全,提升用户的信任度。
diff --git a/web-service/src/test/java/cn/qaiu/vx/core/util/ParamUtilTest.java b/web-service/src/test/java/cn/qaiu/vx/core/util/ParamUtilTest.java
index eedae1a..6924f6b 100644
--- a/web-service/src/test/java/cn/qaiu/vx/core/util/ParamUtilTest.java
+++ b/web-service/src/test/java/cn/qaiu/vx/core/util/ParamUtilTest.java
@@ -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/).*");
}
}