diff --git a/bigtop-manager-bom/pom.xml b/bigtop-manager-bom/pom.xml
index b5e321adc..2e2d69201 100644
--- a/bigtop-manager-bom/pom.xml
+++ b/bigtop-manager-bom/pom.xml
@@ -45,6 +45,7 @@
3.0.16
4.0.4
1.11.0
+ 1.8.3
1.0.0
6.4.11
1.12.4
@@ -161,6 +162,12 @@
${commons-text.version}
+
+ com.password4j
+ password4j
+ ${password4j.version}
+
+
io.prometheus
diff --git a/bigtop-manager-server/pom.xml b/bigtop-manager-server/pom.xml
index d8122231e..539592057 100644
--- a/bigtop-manager-server/pom.xml
+++ b/bigtop-manager-server/pom.xml
@@ -137,6 +137,11 @@
commons-text
+
+ com.password4j
+ password4j
+
+
com.auth0
java-jwt
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/WebConfig.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/WebConfig.java
index 742c98147..15ff1ce6d 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/WebConfig.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/WebConfig.java
@@ -44,7 +44,7 @@ public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authInterceptor)
.addPathPatterns("/**")
// Server APIs
- .excludePathPatterns("/api/login")
+ .excludePathPatterns("/api/salt", "/api/nonce", "/api/login")
// Frontend pages
.excludePathPatterns("/", "/ui/**", "/favicon.ico", "/error")
// Swagger pages
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LoginController.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LoginController.java
index db92a7813..6b1a02c50 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LoginController.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LoginController.java
@@ -26,9 +26,13 @@
import org.apache.bigtop.manager.server.model.req.LoginReq;
import org.apache.bigtop.manager.server.model.vo.LoginVO;
import org.apache.bigtop.manager.server.service.LoginService;
+import org.apache.bigtop.manager.server.utils.CacheUtils;
+import org.apache.bigtop.manager.server.utils.PasswordUtils;
+import org.apache.bigtop.manager.server.utils.Pbkdf2Utils;
import org.apache.bigtop.manager.server.utils.ResponseEntity;
import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@@ -45,6 +49,21 @@ public class LoginController {
@Resource
private LoginService loginService;
+ @Operation(summary = "salt", description = "Generate salt")
+ @GetMapping(value = "/salt")
+ public ResponseEntity salt(String username) {
+ String salt = Pbkdf2Utils.generateSalt(username);
+ return ResponseEntity.success(salt);
+ }
+
+ @Operation(summary = "nonce", description = "Generate nonce")
+ @GetMapping(value = "/nonce")
+ public ResponseEntity nonce(String username) {
+ String nonce = PasswordUtils.randomString(16);
+ CacheUtils.setCache(username, nonce);
+ return ResponseEntity.success(nonce);
+ }
+
@Audit
@Operation(summary = "login", description = "User Login")
@PostMapping(value = "/login")
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/LoginDTO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/LoginDTO.java
index 162abec69..a7f9ceb92 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/LoginDTO.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/LoginDTO.java
@@ -26,4 +26,6 @@ public class LoginDTO {
private String username;
private String password;
+
+ private String nonce;
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/LoginReq.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/LoginReq.java
index f8bfed6ec..9062f68c5 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/LoginReq.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/LoginReq.java
@@ -29,4 +29,7 @@ public class LoginReq {
@Schema(example = "admin")
private String password;
+
+ @Schema(example = "nonce")
+ private String nonce;
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/LoginServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/LoginServiceImpl.java
index a88c02293..2c1bbcf5d 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/LoginServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/LoginServiceImpl.java
@@ -25,7 +25,9 @@
import org.apache.bigtop.manager.server.model.dto.LoginDTO;
import org.apache.bigtop.manager.server.model.vo.LoginVO;
import org.apache.bigtop.manager.server.service.LoginService;
+import org.apache.bigtop.manager.server.utils.CacheUtils;
import org.apache.bigtop.manager.server.utils.JWTUtils;
+import org.apache.bigtop.manager.server.utils.PasswordUtils;
import org.springframework.stereotype.Service;
@@ -39,17 +41,31 @@ public class LoginServiceImpl implements LoginService {
@Override
public LoginVO login(LoginDTO loginDTO) {
- UserPO userPO = userDao.findByUsername(loginDTO.getUsername());
- if (userPO == null || !loginDTO.getPassword().equalsIgnoreCase(userPO.getPassword())) {
+ String username = loginDTO.getUsername();
+ String password = loginDTO.getPassword();
+ String nonce = loginDTO.getNonce();
+
+ UserPO user = userDao.findByUsername(username);
+ if (user == null) {
throw new ApiException(ApiExceptionEnum.INCORRECT_USERNAME_OR_PASSWORD);
}
- if (!userPO.getStatus()) {
+ if (!user.getStatus()) {
throw new ApiException(ApiExceptionEnum.USER_IS_DISABLED);
}
- String token = JWTUtils.generateToken(userPO.getId(), userPO.getUsername());
+ String cache = CacheUtils.getCache(username);
+ if (cache == null || !cache.equals(nonce)) {
+ throw new ApiException(ApiExceptionEnum.INCORRECT_USERNAME_OR_PASSWORD);
+ }
+
+ if (!PasswordUtils.checkBcryptPassword(password, user.getPassword())) {
+ throw new ApiException(ApiExceptionEnum.INCORRECT_USERNAME_OR_PASSWORD);
+ }
+
+ CacheUtils.removeCache(username);
+ String token = JWTUtils.generateToken(user.getId(), user.getUsername());
LoginVO loginVO = new LoginVO();
loginVO.setToken(token);
return loginVO;
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/CacheUtils.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/CacheUtils.java
new file mode 100644
index 000000000..2aa4103a1
--- /dev/null
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/CacheUtils.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Cache utility class
+ */
+public class CacheUtils {
+
+ /**
+ * Create cache, expires in 5 minutes, maximum capacity 10000
+ */
+ private static final Cache CACHE = CacheBuilder.newBuilder()
+ .expireAfterWrite(5, TimeUnit.MINUTES)
+ .maximumSize(10000)
+ .build();
+
+ /**
+ * Store cache
+ *
+ * @param key cache key
+ * @param value cache value
+ */
+ public static void setCache(String key, String value) {
+ if (StringUtils.isBlank(key) || value == null) {
+ return;
+ }
+ CACHE.put(key, value);
+ }
+
+ /**
+ * Get cache
+ *
+ * @param key cache key
+ * @return cache value (returns null if not found or expired)
+ */
+ public static String getCache(String key) {
+ if (StringUtils.isBlank(key)) {
+ return null;
+ }
+ return CACHE.getIfPresent(key);
+ }
+
+ /**
+ * Remove specified cache
+ *
+ * @param key cache key
+ */
+ public static void removeCache(String key) {
+ if (StringUtils.isBlank(key)) {
+ return;
+ }
+ CACHE.invalidate(key);
+ }
+
+ /**
+ * Clear all caches
+ */
+ public static void clearAll() {
+ CACHE.invalidateAll();
+ CACHE.cleanUp();
+ }
+
+ /**
+ * Get cache size
+ */
+ public static long size() {
+ return CACHE.size();
+ }
+}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/HexUtils.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/HexUtils.java
new file mode 100644
index 000000000..7608407a3
--- /dev/null
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/HexUtils.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.utils;
+
+import java.util.Objects;
+
+/**
+ * Hexadecimal utility class
+ */
+public class HexUtils {
+
+ private HexUtils() {
+ throw new UnsupportedOperationException("Utility class cannot be instantiated");
+ }
+
+ /**
+ * Converts a byte array to a hexadecimal string (lowercase)
+ *
+ * @param bytes the input byte array
+ * @return the hexadecimal string representation
+ */
+ public static String bytesToHex(byte[] bytes) {
+ Objects.requireNonNull(bytes, "bytes cannot be null");
+
+ StringBuilder hex = new StringBuilder(bytes.length * 2);
+ for (byte b : bytes) {
+ hex.append(String.format("%02x", b & 0xff));
+ }
+ return hex.toString();
+ }
+
+ /**
+ * Converts a hexadecimal string to a byte array
+ *
+ * @param hex the input hexadecimal string
+ * @return the corresponding byte array
+ * @throws IllegalArgumentException if the length of the hex string is not even
+ */
+ public static byte[] hexToBytes(String hex) {
+ Objects.requireNonNull(hex, "hex cannot be null");
+
+ if (hex.length() % 2 != 0) {
+ throw new IllegalArgumentException("Hex string length must be even");
+ }
+
+ int len = hex.length();
+ byte[] data = new byte[len / 2];
+ for (int i = 0; i < len; i += 2) {
+ data[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) + Character.digit(hex.charAt(i + 1), 16));
+ }
+ return data;
+ }
+}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PasswordUtils.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PasswordUtils.java
new file mode 100644
index 000000000..7b796455a
--- /dev/null
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PasswordUtils.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.utils;
+
+import com.password4j.Password;
+
+import java.util.concurrent.ThreadLocalRandom;
+
+/**
+ * Password utility class
+ */
+public class PasswordUtils {
+
+ private static final String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";
+ private static final int BASE = ALPHABET.length();
+
+ private PasswordUtils() {
+ throw new UnsupportedOperationException("Utility class cannot be instantiated");
+ }
+
+ /**
+ * Generate random string
+ *
+ * @param length the length of the random string to generate
+ * @return a random string
+ */
+ public static String randomString(int length) {
+ StringBuilder sb = new StringBuilder(length);
+ for (int i = 0; i < length; i++) {
+ int index = ThreadLocalRandom.current().nextInt(BASE);
+ sb.append(ALPHABET.charAt(index));
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Get BCrypt password
+ *
+ * @param rawPassword raw password
+ * @return hashed password
+ */
+ public static String getBcryptPassword(String rawPassword) {
+ return Password.hash(rawPassword).withBcrypt().getResult();
+ }
+
+ /**
+ * Verify BCrypt password
+ *
+ * @param rawPassword raw password
+ * @param hashedPassword hashed password
+ * @return verification result
+ */
+ public static boolean checkBcryptPassword(String rawPassword, String hashedPassword) {
+ return Password.check(rawPassword, hashedPassword).withBcrypt();
+ }
+}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/Pbkdf2Utils.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/Pbkdf2Utils.java
new file mode 100644
index 000000000..a9467e08b
--- /dev/null
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/Pbkdf2Utils.java
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.crypto.SecretKeyFactory;
+import javax.crypto.spec.PBEKeySpec;
+import java.security.NoSuchAlgorithmException;
+import java.security.spec.InvalidKeySpecException;
+
+/**
+ * Pbkdf2 utility class
+ */
+public class Pbkdf2Utils {
+
+ private static final Logger logger = LoggerFactory.getLogger(Pbkdf2Utils.class);
+
+ private static final String DEFAULT_SALT = "k9@2Uw3*Y@Ccno9c";
+
+ private Pbkdf2Utils() {
+ throw new UnsupportedOperationException("Utility class cannot be instantiated");
+ }
+
+ /**
+ * Derive a key from a password and salt using PBKDF2WithHmacSHA256
+ * @param password the user's password
+ * @param salt the salt value
+ * @return the derived key
+ */
+ public static byte[] deriveKey(String password, String salt) {
+ if (StringUtils.isBlank(password)) {
+ return null;
+ }
+
+ try {
+ SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
+ PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt.getBytes(), 600000, 256);
+ return skf.generateSecret(spec).getEncoded();
+ } catch (NoSuchAlgorithmException | InvalidKeySpecException e) {
+ logger.error("Error generating derive key: ", e);
+ return null;
+ }
+ }
+
+ /**
+ * Generate a salt value for a given username
+ * @param username the user's username
+ * @return the generated salt
+ */
+ public static String generateSalt(String username) {
+ if (StringUtils.isBlank(username)) {
+ return null;
+ }
+
+ byte[] saltBytes = deriveKey(username, DEFAULT_SALT);
+ if (saltBytes == null) {
+ return null;
+ }
+ return HexUtils.bytesToHex(saltBytes);
+ }
+
+ /**
+ * Get the PBKDF2 password for a given username and password
+ * @param username the user's username
+ * @param password the user's password
+ * @return the PBKDF2 password
+ */
+ public static String getPbkdf2Password(String username, String password) {
+ String salt = generateSalt(username);
+ if (StringUtils.isBlank(salt)) {
+ return null;
+ }
+ byte[] key = deriveKey(password, salt);
+ return HexUtils.bytesToHex(key);
+ }
+
+ /**
+ * Get the BCrypt password for a given username and password
+ * @param username the user's username
+ * @param password the user's password
+ * @return the BCrypt password
+ */
+ public static String getBcryptPassword(String username, String password) {
+ String pbkdf2Password = getPbkdf2Password(username, password);
+ if (StringUtils.isBlank(pbkdf2Password)) {
+ return null;
+ }
+ return PasswordUtils.getBcryptPassword(pbkdf2Password);
+ }
+}
diff --git a/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql b/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql
index b2a3a549e..399eaf9f3 100644
--- a/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql
+++ b/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql
@@ -57,7 +57,7 @@ CREATE TABLE `user`
(
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`username` VARCHAR(32) DEFAULT NULL,
- `password` VARCHAR(32) DEFAULT NULL,
+ `password` VARCHAR(255) DEFAULT NULL,
`nickname` VARCHAR(32) DEFAULT NULL,
`status` BIT(1) DEFAULT 1 COMMENT '0-Disable, 1-Enable',
`create_time` DATETIME DEFAULT NULL DEFAULT CURRENT_TIMESTAMP,
@@ -348,7 +348,7 @@ CREATE TABLE `tool`
-- Adding default admin user
INSERT INTO user (username, password, nickname, status)
-VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', true);
+VALUES ('admin', '$2b$10$bdTvADKA0dSJYT3wMU3LFeIEnxzKQHeWN3XcHJ5jQpsIo7ju1U5Yi', 'Administrator', true);
INSERT INTO repo (name, arch, base_url)
VALUES
diff --git a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql
index 1552e1a17..9f049321d 100644
--- a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql
+++ b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql
@@ -38,7 +38,7 @@ CREATE TABLE "user"
(
id BIGINT CHECK (id > 0) NOT NULL GENERATED ALWAYS AS IDENTITY,
username VARCHAR(32) DEFAULT NULL,
- password VARCHAR(32) DEFAULT NULL,
+ password VARCHAR(255) DEFAULT NULL,
nickname VARCHAR(32) DEFAULT NULL,
status BOOLEAN DEFAULT TRUE,
create_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP,
@@ -359,7 +359,7 @@ CREATE INDEX idx_thread_id ON llm_chat_message (thread_id);
CREATE INDEX idx_message_user_id ON llm_chat_message (user_id);
INSERT INTO "user" (username, password, nickname, status)
-VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', true);
+VALUES ('admin', '$2b$10$bdTvADKA0dSJYT3wMU3LFeIEnxzKQHeWN3XcHJ5jQpsIo7ju1U5Yi', 'Administrator', true);
INSERT INTO repo (name, arch, base_url)
VALUES
diff --git a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/service/LoginServiceTest.java b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/service/LoginServiceTest.java
index d9620d996..e5430717d 100644
--- a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/service/LoginServiceTest.java
+++ b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/service/LoginServiceTest.java
@@ -25,7 +25,11 @@
import org.apache.bigtop.manager.server.exception.ApiException;
import org.apache.bigtop.manager.server.model.dto.LoginDTO;
import org.apache.bigtop.manager.server.service.impl.LoginServiceImpl;
+import org.apache.bigtop.manager.server.utils.CacheUtils;
+import org.apache.bigtop.manager.server.utils.PasswordUtils;
+import org.apache.bigtop.manager.server.utils.Pbkdf2Utils;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
@@ -33,6 +37,7 @@
import org.mockito.junit.jupiter.MockitoExtension;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
@@ -46,34 +51,67 @@ public class LoginServiceTest {
@InjectMocks
private LoginService loginService = new LoginServiceImpl();
+ private static final String USERNAME = "root";
+ private static final String RAW_PASSWORD = "123456";
+
+ private UserPO mockUser;
+ private String nonce;
+
+ @BeforeEach
+ public void setUp() {
+ nonce = PasswordUtils.randomString(16);
+ CacheUtils.setCache(USERNAME, nonce);
+
+ mockUser = new UserPO();
+ mockUser.setUsername(USERNAME);
+ mockUser.setPassword(Pbkdf2Utils.getBcryptPassword(USERNAME, RAW_PASSWORD));
+ mockUser.setStatus(true);
+ }
+
@Test
- public void testLogin() {
+ public void testLogin_WhenUserNotFound_ShouldThrowException() {
when(userDao.findByUsername(any())).thenReturn(null);
- assertEquals(
- ApiExceptionEnum.INCORRECT_USERNAME_OR_PASSWORD,
- assertThrows(ApiException.class, () -> loginService.login(new LoginDTO()))
- .getEx());
-
- UserPO userPO = new UserPO();
- userPO.setStatus(false);
- userPO.setPassword("wrong_password");
- LoginDTO loginDTO = new LoginDTO();
- loginDTO.setPassword("password");
- when(userDao.findByUsername(any())).thenReturn(userPO);
- assertEquals(
- ApiExceptionEnum.INCORRECT_USERNAME_OR_PASSWORD,
- assertThrows(ApiException.class, () -> loginService.login(loginDTO))
- .getEx());
-
- userPO.setPassword("password");
- when(userDao.findByUsername(any())).thenReturn(userPO);
- assertEquals(
- ApiExceptionEnum.USER_IS_DISABLED,
- assertThrows(ApiException.class, () -> loginService.login(loginDTO))
- .getEx());
-
- userPO.setStatus(true);
- when(userDao.findByUsername(any())).thenReturn(userPO);
- assert loginService.login(loginDTO) != null;
+
+ ApiException exception = assertThrows(ApiException.class, () -> loginService.login(new LoginDTO()));
+ assertEquals(ApiExceptionEnum.INCORRECT_USERNAME_OR_PASSWORD, exception.getEx());
+ }
+
+ @Test
+ public void testLogin_WhenPasswordMismatch_ShouldThrowException() {
+ LoginDTO loginDTO = createLoginDTO("wrong_password");
+
+ when(userDao.findByUsername(any())).thenReturn(mockUser);
+
+ ApiException exception = assertThrows(ApiException.class, () -> loginService.login(loginDTO));
+ assertEquals(ApiExceptionEnum.INCORRECT_USERNAME_OR_PASSWORD, exception.getEx());
+ }
+
+ @Test
+ public void testLogin_WhenUserIsDisabled_ShouldThrowException() {
+ mockUser.setStatus(false);
+ LoginDTO loginDTO = createLoginDTO(RAW_PASSWORD);
+
+ when(userDao.findByUsername(any())).thenReturn(mockUser);
+
+ ApiException exception = assertThrows(ApiException.class, () -> loginService.login(loginDTO));
+ assertEquals(ApiExceptionEnum.USER_IS_DISABLED, exception.getEx());
+ }
+
+ @Test
+ public void testLogin_WhenValidCredentials_ShouldReturnToken() {
+ LoginDTO loginDTO = createLoginDTO(RAW_PASSWORD);
+
+ when(userDao.findByUsername(any())).thenReturn(mockUser);
+
+ Object result = loginService.login(loginDTO);
+ assertNotNull(result);
+ }
+
+ private LoginDTO createLoginDTO(String password) {
+ LoginDTO dto = new LoginDTO();
+ dto.setUsername(USERNAME);
+ dto.setPassword(Pbkdf2Utils.getPbkdf2Password(USERNAME, password));
+ dto.setNonce(nonce);
+ return dto;
}
}
diff --git a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/HexUtilsTest.java b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/HexUtilsTest.java
new file mode 100644
index 000000000..68eafb728
--- /dev/null
+++ b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/HexUtilsTest.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.utils;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class HexUtilsTest {
+
+ @Test
+ public void testHex() {
+ byte[] bytes = HexUtils.hexToBytes("abc123");
+ String hex = HexUtils.bytesToHex(bytes);
+ assertEquals("abc123", hex);
+ }
+}
diff --git a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/PasswordUtilsTest.java b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/PasswordUtilsTest.java
new file mode 100644
index 000000000..7eadf5df3
--- /dev/null
+++ b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/PasswordUtilsTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.utils;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class PasswordUtilsTest {
+
+ @Test
+ public void testRandomString() {
+ int length = 32;
+ String randomString = PasswordUtils.randomString(length);
+ assertEquals(length, randomString.length());
+ }
+
+ @Test
+ public void testGenBcryptAndCheckBcrypt() {
+ String rawPassword = "password";
+ String hashedPassword = PasswordUtils.getBcryptPassword(rawPassword);
+ boolean check = PasswordUtils.checkBcryptPassword(rawPassword, hashedPassword);
+ assertTrue(check);
+ }
+}
diff --git a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/Pbkdf2UtilsTest.java b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/Pbkdf2UtilsTest.java
new file mode 100644
index 000000000..cef3d2e25
--- /dev/null
+++ b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/utils/Pbkdf2UtilsTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.server.utils;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class Pbkdf2UtilsTest {
+
+ @Test
+ public void testGetPbkdf2Password() {
+ String pbkdf2Password = Pbkdf2Utils.getPbkdf2Password("root", "root");
+ assertEquals("5088ada7c4a74b6412740737bf300f98776813f0a3d3ecc6de7f9f1926c7692b", pbkdf2Password);
+ }
+}
diff --git a/bigtop-manager-ui/package.json b/bigtop-manager-ui/package.json
index 33c0b103a..6adc321db 100644
--- a/bigtop-manager-ui/package.json
+++ b/bigtop-manager-ui/package.json
@@ -23,7 +23,7 @@
"lodash": "^4.17.21",
"marked": "^14.1.2",
"marked-highlight": "^2.1.4",
- "md5": "^2.3.0",
+ "node-forge": "^1.3.1",
"pinia": "^2.1.6",
"pinia-plugin-persistedstate": "^3.2.0",
"vue": "^3.4.37",
@@ -34,8 +34,8 @@
"devDependencies": {
"@testing-library/vue": "^8.1.0",
"@types/lodash": "^4.14.197",
- "@types/md5": "^2.3.2",
"@types/node": "^20.5.3",
+ "@types/node-forge": "^1.3.11",
"@typescript-eslint/eslint-plugin": "^6.4.1",
"@typescript-eslint/parser": "^6.4.1",
"@vitejs/plugin-vue": "^4.6.2",
diff --git a/bigtop-manager-ui/pnpm-lock.yaml b/bigtop-manager-ui/pnpm-lock.yaml
index 8202c1a7c..5179f4b73 100644
--- a/bigtop-manager-ui/pnpm-lock.yaml
+++ b/bigtop-manager-ui/pnpm-lock.yaml
@@ -41,9 +41,9 @@ dependencies:
marked-highlight:
specifier: ^2.1.4
version: 2.1.4(marked@14.1.2)
- md5:
- specifier: ^2.3.0
- version: 2.3.0
+ node-forge:
+ specifier: ^1.3.1
+ version: 1.3.1
pinia:
specifier: ^2.1.6
version: 2.1.6(typescript@5.0.2)(vue@3.4.37)
@@ -70,12 +70,12 @@ devDependencies:
'@types/lodash':
specifier: ^4.14.197
version: 4.14.197
- '@types/md5':
- specifier: ^2.3.2
- version: 2.3.2
'@types/node':
specifier: ^20.5.3
version: 20.5.3
+ '@types/node-forge':
+ specifier: ^1.3.11
+ version: 1.3.11
'@typescript-eslint/eslint-plugin':
specifier: ^6.4.1
version: 6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@5.0.2)
@@ -120,7 +120,7 @@ devDependencies:
version: 1.66.1
sass-loader:
specifier: ^13.3.2
- version: 13.3.2(sass@1.66.1)(webpack@5.96.1)
+ version: 13.3.2(sass@1.66.1)(webpack@5.99.9)
typescript:
specifier: ^5.0.2
version: 5.0.2
@@ -143,7 +143,7 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
dependencies:
- '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
dev: true
@@ -177,42 +177,40 @@ packages:
vue: 3.4.37(typescript@5.0.2)
dev: false
- /@babel/code-frame@7.26.2:
- resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+ /@babel/code-frame@7.27.1:
+ resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-validator-identifier': 7.25.9
+ '@babel/helper-validator-identifier': 7.27.1
js-tokens: 4.0.0
picocolors: 1.1.1
dev: true
- /@babel/helper-string-parser@7.25.9:
- resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+ /@babel/helper-string-parser@7.27.1:
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
- /@babel/helper-validator-identifier@7.25.9:
- resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ /@babel/helper-validator-identifier@7.27.1:
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
- /@babel/parser@7.26.2:
- resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==}
+ /@babel/parser@7.27.5:
+ resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.27.6
- /@babel/runtime@7.26.0:
- resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
+ /@babel/runtime@7.27.6:
+ resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==}
engines: {node: '>=6.9.0'}
- dependencies:
- regenerator-runtime: 0.14.1
- /@babel/types@7.26.0:
- resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
+ /@babel/types@7.27.6:
+ resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-string-parser': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
/@ctrl/tinycolor@3.6.1:
resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
@@ -434,8 +432,8 @@ packages:
dev: true
optional: true
- /@eslint-community/eslint-utils@4.4.1(eslint@8.47.0):
- resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
+ /@eslint-community/eslint-utils@4.7.0(eslint@8.47.0):
+ resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@@ -454,11 +452,11 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
- debug: 4.3.7
+ debug: 4.4.1
espree: 9.6.1
globals: 13.24.0
ignore: 5.3.2
- import-fresh: 3.3.0
+ import-fresh: 3.3.1
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
@@ -477,7 +475,7 @@ packages:
deprecated: Use @eslint/config-array instead
dependencies:
'@humanwhocodes/object-schema': 2.0.3
- debug: 4.3.7
+ debug: 4.4.1
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -543,8 +541,8 @@ packages:
wrap-ansi-cjs: /wrap-ansi@7.0.0
dev: true
- /@jridgewell/gen-mapping@0.3.5:
- resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
+ /@jridgewell/gen-mapping@0.3.8:
+ resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/set-array': 1.2.1
@@ -565,7 +563,7 @@ packages:
/@jridgewell/source-map@0.3.6:
resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
dependencies:
- '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
dev: true
@@ -597,7 +595,7 @@ packages:
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.17.1
+ fastq: 1.19.1
dev: true
/@one-ini/wasm@0.1.1:
@@ -611,61 +609,61 @@ packages:
dev: true
optional: true
- /@pkgr/core@0.1.1:
- resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
+ /@pkgr/core@0.1.2:
+ resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
dev: true
- /@rollup/rollup-android-arm-eabi@4.28.0:
- resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==}
+ /@rollup/rollup-android-arm-eabi@4.43.0:
+ resolution: {integrity: sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-android-arm64@4.28.0:
- resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==}
+ /@rollup/rollup-android-arm64@4.43.0:
+ resolution: {integrity: sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-darwin-arm64@4.28.0:
- resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==}
+ /@rollup/rollup-darwin-arm64@4.43.0:
+ resolution: {integrity: sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-darwin-x64@4.28.0:
- resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==}
+ /@rollup/rollup-darwin-x64@4.43.0:
+ resolution: {integrity: sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-freebsd-arm64@4.28.0:
- resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==}
+ /@rollup/rollup-freebsd-arm64@4.43.0:
+ resolution: {integrity: sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-freebsd-x64@4.28.0:
- resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==}
+ /@rollup/rollup-freebsd-x64@4.43.0:
+ resolution: {integrity: sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-linux-arm-gnueabihf@4.28.0:
- resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==}
+ /@rollup/rollup-linux-arm-gnueabihf@4.43.0:
+ resolution: {integrity: sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==}
cpu: [arm]
os: [linux]
libc: [glibc]
@@ -673,8 +671,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-arm-musleabihf@4.28.0:
- resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==}
+ /@rollup/rollup-linux-arm-musleabihf@4.43.0:
+ resolution: {integrity: sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==}
cpu: [arm]
os: [linux]
libc: [musl]
@@ -682,8 +680,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-arm64-gnu@4.28.0:
- resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==}
+ /@rollup/rollup-linux-arm64-gnu@4.43.0:
+ resolution: {integrity: sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==}
cpu: [arm64]
os: [linux]
libc: [glibc]
@@ -691,8 +689,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-arm64-musl@4.28.0:
- resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==}
+ /@rollup/rollup-linux-arm64-musl@4.43.0:
+ resolution: {integrity: sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==}
cpu: [arm64]
os: [linux]
libc: [musl]
@@ -700,8 +698,17 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-powerpc64le-gnu@4.28.0:
- resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==}
+ /@rollup/rollup-linux-loongarch64-gnu@4.43.0:
+ resolution: {integrity: sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-powerpc64le-gnu@4.43.0:
+ resolution: {integrity: sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
@@ -709,8 +716,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-riscv64-gnu@4.28.0:
- resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==}
+ /@rollup/rollup-linux-riscv64-gnu@4.43.0:
+ resolution: {integrity: sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
@@ -718,8 +725,17 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-s390x-gnu@4.28.0:
- resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==}
+ /@rollup/rollup-linux-riscv64-musl@4.43.0:
+ resolution: {integrity: sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-s390x-gnu@4.43.0:
+ resolution: {integrity: sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==}
cpu: [s390x]
os: [linux]
libc: [glibc]
@@ -727,8 +743,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-x64-gnu@4.28.0:
- resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==}
+ /@rollup/rollup-linux-x64-gnu@4.43.0:
+ resolution: {integrity: sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==}
cpu: [x64]
os: [linux]
libc: [glibc]
@@ -736,8 +752,8 @@ packages:
dev: true
optional: true
- /@rollup/rollup-linux-x64-musl@4.28.0:
- resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==}
+ /@rollup/rollup-linux-x64-musl@4.43.0:
+ resolution: {integrity: sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==}
cpu: [x64]
os: [linux]
libc: [musl]
@@ -745,24 +761,24 @@ packages:
dev: true
optional: true
- /@rollup/rollup-win32-arm64-msvc@4.28.0:
- resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==}
+ /@rollup/rollup-win32-arm64-msvc@4.43.0:
+ resolution: {integrity: sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-ia32-msvc@4.28.0:
- resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==}
+ /@rollup/rollup-win32-ia32-msvc@4.43.0:
+ resolution: {integrity: sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /@rollup/rollup-win32-x64-msvc@4.28.0:
- resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==}
+ /@rollup/rollup-win32-x64-msvc@4.43.0:
+ resolution: {integrity: sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==}
cpu: [x64]
os: [win32]
requiresBuild: true
@@ -772,7 +788,7 @@ packages:
/@simonwep/pickr@1.8.2:
resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
dependencies:
- core-js: 3.39.0
+ core-js: 3.43.0
nanopop: 2.4.2
dev: false
@@ -780,8 +796,8 @@ packages:
resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==}
engines: {node: '>=14'}
dependencies:
- '@babel/code-frame': 7.26.2
- '@babel/runtime': 7.26.0
+ '@babel/code-frame': 7.27.1
+ '@babel/runtime': 7.27.6
'@types/aria-query': 5.0.4
aria-query: 5.1.3
chalk: 4.1.2
@@ -800,7 +816,7 @@ packages:
'@vue/compiler-sfc':
optional: true
dependencies:
- '@babel/runtime': 7.26.0
+ '@babel/runtime': 7.27.6
'@testing-library/dom': 9.3.4
'@vue/test-utils': 2.4.6
vue: 3.4.37(typescript@5.0.2)
@@ -819,18 +835,22 @@ packages:
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
dependencies:
'@types/eslint': 9.6.1
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
dev: true
/@types/eslint@9.6.1:
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
'@types/json-schema': 7.0.15
dev: true
- /@types/estree@1.0.6:
- resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ /@types/estree@1.0.7:
+ resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
+ dev: true
+
+ /@types/estree@1.0.8:
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
dev: true
/@types/json-schema@7.0.15:
@@ -841,22 +861,24 @@ packages:
resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==}
dev: true
- /@types/md5@2.3.2:
- resolution: {integrity: sha512-v+JFDu96+UYJ3/UWzB0mEglIS//MZXgRaJ4ubUPwOM0gvLc/kcQ3TWNYwENEK7/EcXGQVrW8h/XqednSjBd/Og==}
+ /@types/node-forge@1.3.11:
+ resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==}
+ dependencies:
+ '@types/node': 20.5.3
dev: true
- /@types/node@20.17.9:
- resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==}
+ /@types/node@20.19.0:
+ resolution: {integrity: sha512-hfrc+1tud1xcdVTABC2JiomZJEklMcXYNTVtZLAeqTVWD+qL5jkHKT+1lOtqDdGxt+mB53DTtiz673vfjU8D1Q==}
dependencies:
- undici-types: 6.19.8
+ undici-types: 6.21.0
dev: true
/@types/node@20.5.3:
resolution: {integrity: sha512-ITI7rbWczR8a/S6qjAW7DMqxqFMjjTo61qZVWJ1ubPvbIQsL5D/TvwjYEalM8Kthpe3hTzOGrF2TGbAu2uyqeA==}
dev: true
- /@types/semver@7.5.8:
- resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
+ /@types/semver@7.7.0:
+ resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==}
dev: true
/@types/svgo@2.6.4:
@@ -892,12 +914,12 @@ packages:
'@typescript-eslint/type-utils': 6.4.1(eslint@8.47.0)(typescript@5.0.2)
'@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@5.0.2)
'@typescript-eslint/visitor-keys': 6.4.1
- debug: 4.3.7
+ debug: 4.4.1
eslint: 8.47.0
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
- semver: 7.6.3
+ semver: 7.7.2
ts-api-utils: 1.4.3(typescript@5.0.2)
typescript: 5.0.2
transitivePeerDependencies:
@@ -918,7 +940,7 @@ packages:
'@typescript-eslint/types': 6.4.1
'@typescript-eslint/typescript-estree': 6.4.1(typescript@5.0.2)
'@typescript-eslint/visitor-keys': 6.4.1
- debug: 4.3.7
+ debug: 4.4.1
eslint: 8.47.0
typescript: 5.0.2
transitivePeerDependencies:
@@ -945,7 +967,7 @@ packages:
dependencies:
'@typescript-eslint/typescript-estree': 6.4.1(typescript@5.0.2)
'@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@5.0.2)
- debug: 4.3.7
+ debug: 4.4.1
eslint: 8.47.0
ts-api-utils: 1.4.3(typescript@5.0.2)
typescript: 5.0.2
@@ -969,10 +991,10 @@ packages:
dependencies:
'@typescript-eslint/types': 6.4.1
'@typescript-eslint/visitor-keys': 6.4.1
- debug: 4.3.7
+ debug: 4.4.1
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.6.3
+ semver: 7.7.2
ts-api-utils: 1.4.3(typescript@5.0.2)
typescript: 5.0.2
transitivePeerDependencies:
@@ -985,14 +1007,14 @@ packages:
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@8.47.0)
+ '@eslint-community/eslint-utils': 4.7.0(eslint@8.47.0)
'@types/json-schema': 7.0.15
- '@types/semver': 7.5.8
+ '@types/semver': 7.7.0
'@typescript-eslint/scope-manager': 6.4.1
'@typescript-eslint/types': 6.4.1
'@typescript-eslint/typescript-estree': 6.4.1(typescript@5.0.2)
eslint: 8.47.0
- semver: 7.6.3
+ semver: 7.7.2
transitivePeerDependencies:
- supports-color
- typescript
@@ -1022,7 +1044,7 @@ packages:
dependencies:
'@vitest/spy': 2.0.5
'@vitest/utils': 2.0.5
- chai: 5.1.2
+ chai: 5.2.0
tinyrainbow: 1.2.0
dev: true
@@ -1032,8 +1054,8 @@ packages:
tinyrainbow: 1.2.0
dev: true
- /@vitest/pretty-format@2.1.8:
- resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==}
+ /@vitest/pretty-format@2.1.9:
+ resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==}
dependencies:
tinyrainbow: 1.2.0
dev: true
@@ -1049,7 +1071,7 @@ packages:
resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==}
dependencies:
'@vitest/pretty-format': 2.0.5
- magic-string: 0.30.14
+ magic-string: 0.30.17
pathe: 1.1.2
dev: true
@@ -1064,7 +1086,7 @@ packages:
dependencies:
'@vitest/pretty-format': 2.0.5
estree-walker: 3.0.3
- loupe: 3.1.2
+ loupe: 3.1.3
tinyrainbow: 1.2.0
dev: true
@@ -1089,17 +1111,17 @@ packages:
/@vue/compiler-core@3.4.37:
resolution: {integrity: sha512-ZDDT/KiLKuCRXyzWecNzC5vTcubGz4LECAtfGPENpo0nrmqJHwuWtRLxk/Sb9RAKtR9iFflFycbkjkY+W/PZUQ==}
dependencies:
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.27.5
'@vue/shared': 3.4.37
entities: 5.0.0
estree-walker: 2.0.2
source-map-js: 1.2.1
- /@vue/compiler-core@3.5.13:
- resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
+ /@vue/compiler-core@3.5.16:
+ resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==}
dependencies:
- '@babel/parser': 7.26.2
- '@vue/shared': 3.5.13
+ '@babel/parser': 7.27.5
+ '@vue/shared': 3.5.16
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.1
@@ -1111,23 +1133,23 @@ packages:
'@vue/compiler-core': 3.4.37
'@vue/shared': 3.4.37
- /@vue/compiler-dom@3.5.13:
- resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
+ /@vue/compiler-dom@3.5.16:
+ resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==}
dependencies:
- '@vue/compiler-core': 3.5.13
- '@vue/shared': 3.5.13
+ '@vue/compiler-core': 3.5.16
+ '@vue/shared': 3.5.16
dev: true
/@vue/compiler-sfc@3.4.37:
resolution: {integrity: sha512-vCfetdas40Wk9aK/WWf8XcVESffsbNkBQwS5t13Y/PcfqKfIwJX2gF+82th6dOpnpbptNMlMjAny80li7TaCIg==}
dependencies:
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.27.5
'@vue/compiler-core': 3.4.37
'@vue/compiler-dom': 3.4.37
'@vue/compiler-ssr': 3.4.37
'@vue/shared': 3.4.37
estree-walker: 2.0.2
- magic-string: 0.30.14
+ magic-string: 0.30.17
postcss: 8.4.41
source-map-js: 1.2.1
@@ -1151,9 +1173,9 @@ packages:
dependencies:
'@volar/language-core': 1.9.2
'@volar/source-map': 1.9.2
- '@vue/compiler-dom': 3.5.13
- '@vue/reactivity': 3.5.13
- '@vue/shared': 3.5.13
+ '@vue/compiler-dom': 3.5.16
+ '@vue/reactivity': 3.5.16
+ '@vue/shared': 3.5.16
minimatch: 9.0.5
muggle-string: 0.3.1
typescript: 5.0.2
@@ -1165,10 +1187,10 @@ packages:
dependencies:
'@vue/shared': 3.4.37
- /@vue/reactivity@3.5.13:
- resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
+ /@vue/reactivity@3.5.16:
+ resolution: {integrity: sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==}
dependencies:
- '@vue/shared': 3.5.13
+ '@vue/shared': 3.5.16
dev: true
/@vue/runtime-core@3.4.37:
@@ -1197,15 +1219,15 @@ packages:
/@vue/shared@3.4.37:
resolution: {integrity: sha512-nIh8P2fc3DflG8+5Uw8PT/1i17ccFn0xxN/5oE9RfV5SVnd7G0XEFRwakrnNFE/jlS95fpGXDVG5zDETS26nmg==}
- /@vue/shared@3.5.13:
- resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
+ /@vue/shared@3.5.16:
+ resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==}
dev: true
/@vue/test-utils@2.4.6:
resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==}
dependencies:
- js-beautify: 1.15.1
- vue-component-type-helpers: 2.1.10
+ js-beautify: 1.15.4
+ vue-component-type-helpers: 2.2.10
dev: true
/@vue/typescript@1.8.5(typescript@5.0.2):
@@ -1361,26 +1383,38 @@ packages:
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
dev: true
- /acorn-jsx@5.3.2(acorn@8.14.0):
+ /acorn-jsx@5.3.2(acorn@8.15.0):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- acorn: 8.14.0
+ acorn: 8.15.0
dev: true
- /acorn@8.14.0:
- resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+ /acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
- /ajv-keywords@3.5.2(ajv@6.12.6):
- resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ /ajv-formats@2.1.1(ajv@8.17.1):
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+ dependencies:
+ ajv: 8.17.1
+ dev: true
+
+ /ajv-keywords@5.1.0(ajv@8.17.1):
+ resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
peerDependencies:
- ajv: ^6.9.1
+ ajv: ^8.8.2
dependencies:
- ajv: 6.12.6
+ ajv: 8.17.1
+ fast-deep-equal: 3.1.3
dev: true
/ajv@6.12.6:
@@ -1392,6 +1426,15 @@ packages:
uri-js: 4.4.1
dev: true
+ /ajv@8.17.1:
+ resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.0.6
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ dev: true
+
/ansi-regex@2.1.1:
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
engines: {node: '>=0.10.0'}
@@ -1437,7 +1480,7 @@ packages:
dependencies:
'@ant-design/colors': 6.0.0
'@ant-design/icons-vue': 7.0.1(vue@3.4.37)
- '@babel/runtime': 7.26.0
+ '@babel/runtime': 7.27.6
'@ctrl/tinycolor': 3.6.1
'@emotion/hash': 0.9.2
'@emotion/unitless': 0.8.1
@@ -1453,7 +1496,7 @@ packages:
resize-observer-polyfill: 1.5.1
scroll-into-view-if-needed: 2.2.31
shallow-equal: 1.2.1
- stylis: 4.3.4
+ stylis: 4.3.6
throttle-debounce: 5.0.2
vue: 3.4.37(typescript@5.0.2)
vue-types: 3.0.2(vue@3.4.37)
@@ -1493,12 +1536,12 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /array-buffer-byte-length@1.0.1:
- resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
+ /array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
- is-array-buffer: 3.0.4
+ call-bound: 1.0.4
+ is-array-buffer: 3.0.5
dev: true
/array-tree-filter@2.1.0:
@@ -1515,18 +1558,17 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /arraybuffer.prototype.slice@1.0.3:
- resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
+ /arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
engines: {node: '>= 0.4'}
dependencies:
- array-buffer-byte-length: 1.0.1
- call-bind: 1.0.7
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.5
+ es-abstract: 1.24.0
es-errors: 1.3.0
- get-intrinsic: 1.2.4
- is-array-buffer: 3.0.4
- is-shared-array-buffer: 1.0.3
+ get-intrinsic: 1.3.0
+ is-array-buffer: 3.0.5
dev: true
/assertion-error@2.0.1:
@@ -1539,6 +1581,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /async-function@1.0.0:
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
/async-validator@4.2.5:
resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
dev: false
@@ -1560,8 +1607,8 @@ packages:
peerDependencies:
postcss: ^8.1.0
dependencies:
- browserslist: 4.24.2
- caniuse-lite: 1.0.30001686
+ browserslist: 4.25.0
+ caniuse-lite: 1.0.30001722
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
@@ -1573,14 +1620,14 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
dependencies:
- possible-typed-array-names: 1.0.0
+ possible-typed-array-names: 1.1.0
dev: true
/axios@1.7.4:
resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==}
dependencies:
follow-redirects: 1.15.9
- form-data: 4.0.1
+ form-data: 4.0.3
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
@@ -1620,15 +1667,15 @@ packages:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
dev: true
- /brace-expansion@1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ /brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
dev: true
- /brace-expansion@2.0.1:
- resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ /brace-expansion@2.0.2:
+ resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
dependencies:
balanced-match: 1.0.2
dev: true
@@ -1658,15 +1705,15 @@ packages:
fill-range: 7.1.1
dev: true
- /browserslist@4.24.2:
- resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==}
+ /browserslist@4.25.0:
+ resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001686
- electron-to-chromium: 1.5.68
- node-releases: 2.0.18
- update-browserslist-db: 1.1.1(browserslist@4.24.2)
+ caniuse-lite: 1.0.30001722
+ electron-to-chromium: 1.5.166
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.3(browserslist@4.25.0)
dev: true
/buffer-from@1.1.2:
@@ -1693,17 +1740,31 @@ packages:
unset-value: 1.0.0
dev: true
- /call-bind@1.0.7:
- resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
+ /call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
dependencies:
- es-define-property: 1.0.0
es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.4
+
+ /call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
set-function-length: 1.2.2
dev: true
+ /call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+ dev: true
+
/callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
@@ -1712,24 +1773,24 @@ packages:
/caniuse-api@3.0.0:
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
dependencies:
- browserslist: 4.24.2
- caniuse-lite: 1.0.30001686
+ browserslist: 4.25.0
+ caniuse-lite: 1.0.30001722
lodash.memoize: 4.1.2
lodash.uniq: 4.5.0
dev: true
- /caniuse-lite@1.0.30001686:
- resolution: {integrity: sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==}
+ /caniuse-lite@1.0.30001722:
+ resolution: {integrity: sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==}
dev: true
- /chai@5.1.2:
- resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
+ /chai@5.2.0:
+ resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==}
engines: {node: '>=12'}
dependencies:
assertion-error: 2.0.1
check-error: 2.1.1
deep-eql: 5.0.2
- loupe: 3.1.2
+ loupe: 3.1.3
pathval: 2.0.0
dev: true
@@ -1752,10 +1813,6 @@ packages:
supports-color: 7.2.0
dev: true
- /charenc@0.0.2:
- resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}
- dev: false
-
/check-error@2.1.1:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
@@ -1872,8 +1929,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /core-js@3.39.0:
- resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==}
+ /core-js@3.43.0:
+ resolution: {integrity: sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==}
requiresBuild: true
dev: false
@@ -1894,10 +1951,6 @@ packages:
which: 2.0.2
dev: true
- /crypt@0.0.2:
- resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==}
- dev: false
-
/css-declaration-sorter@7.2.0(postcss@8.4.41):
resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
engines: {node: ^14 || ^16 || >=18}
@@ -1923,7 +1976,7 @@ packages:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 5.0.3
- domutils: 3.1.0
+ domutils: 3.2.2
nth-check: 2.1.1
dev: true
@@ -1962,50 +2015,50 @@ packages:
hasBin: true
dev: true
- /cssnano-preset-default@7.0.6(postcss@8.4.41):
- resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==}
+ /cssnano-preset-default@7.0.7(postcss@8.4.41):
+ resolution: {integrity: sha512-jW6CG/7PNB6MufOrlovs1TvBTEVmhY45yz+bd0h6nw3h6d+1e+/TX+0fflZ+LzvZombbT5f+KC063w9VoHeHow==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- browserslist: 4.24.2
+ browserslist: 4.25.0
css-declaration-sorter: 7.2.0(postcss@8.4.41)
- cssnano-utils: 5.0.0(postcss@8.4.41)
+ cssnano-utils: 5.0.1(postcss@8.4.41)
postcss: 8.4.41
- postcss-calc: 10.0.2(postcss@8.4.41)
- postcss-colormin: 7.0.2(postcss@8.4.41)
- postcss-convert-values: 7.0.4(postcss@8.4.41)
- postcss-discard-comments: 7.0.3(postcss@8.4.41)
- postcss-discard-duplicates: 7.0.1(postcss@8.4.41)
- postcss-discard-empty: 7.0.0(postcss@8.4.41)
- postcss-discard-overridden: 7.0.0(postcss@8.4.41)
- postcss-merge-longhand: 7.0.4(postcss@8.4.41)
- postcss-merge-rules: 7.0.4(postcss@8.4.41)
- postcss-minify-font-values: 7.0.0(postcss@8.4.41)
- postcss-minify-gradients: 7.0.0(postcss@8.4.41)
- postcss-minify-params: 7.0.2(postcss@8.4.41)
- postcss-minify-selectors: 7.0.4(postcss@8.4.41)
- postcss-normalize-charset: 7.0.0(postcss@8.4.41)
- postcss-normalize-display-values: 7.0.0(postcss@8.4.41)
- postcss-normalize-positions: 7.0.0(postcss@8.4.41)
- postcss-normalize-repeat-style: 7.0.0(postcss@8.4.41)
- postcss-normalize-string: 7.0.0(postcss@8.4.41)
- postcss-normalize-timing-functions: 7.0.0(postcss@8.4.41)
- postcss-normalize-unicode: 7.0.2(postcss@8.4.41)
- postcss-normalize-url: 7.0.0(postcss@8.4.41)
- postcss-normalize-whitespace: 7.0.0(postcss@8.4.41)
- postcss-ordered-values: 7.0.1(postcss@8.4.41)
- postcss-reduce-initial: 7.0.2(postcss@8.4.41)
- postcss-reduce-transforms: 7.0.0(postcss@8.4.41)
- postcss-svgo: 7.0.1(postcss@8.4.41)
- postcss-unique-selectors: 7.0.3(postcss@8.4.41)
- dev: true
-
- /cssnano-utils@5.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==}
+ postcss-calc: 10.1.1(postcss@8.4.41)
+ postcss-colormin: 7.0.3(postcss@8.4.41)
+ postcss-convert-values: 7.0.5(postcss@8.4.41)
+ postcss-discard-comments: 7.0.4(postcss@8.4.41)
+ postcss-discard-duplicates: 7.0.2(postcss@8.4.41)
+ postcss-discard-empty: 7.0.1(postcss@8.4.41)
+ postcss-discard-overridden: 7.0.1(postcss@8.4.41)
+ postcss-merge-longhand: 7.0.5(postcss@8.4.41)
+ postcss-merge-rules: 7.0.5(postcss@8.4.41)
+ postcss-minify-font-values: 7.0.1(postcss@8.4.41)
+ postcss-minify-gradients: 7.0.1(postcss@8.4.41)
+ postcss-minify-params: 7.0.3(postcss@8.4.41)
+ postcss-minify-selectors: 7.0.5(postcss@8.4.41)
+ postcss-normalize-charset: 7.0.1(postcss@8.4.41)
+ postcss-normalize-display-values: 7.0.1(postcss@8.4.41)
+ postcss-normalize-positions: 7.0.1(postcss@8.4.41)
+ postcss-normalize-repeat-style: 7.0.1(postcss@8.4.41)
+ postcss-normalize-string: 7.0.1(postcss@8.4.41)
+ postcss-normalize-timing-functions: 7.0.1(postcss@8.4.41)
+ postcss-normalize-unicode: 7.0.3(postcss@8.4.41)
+ postcss-normalize-url: 7.0.1(postcss@8.4.41)
+ postcss-normalize-whitespace: 7.0.1(postcss@8.4.41)
+ postcss-ordered-values: 7.0.2(postcss@8.4.41)
+ postcss-reduce-initial: 7.0.3(postcss@8.4.41)
+ postcss-reduce-transforms: 7.0.1(postcss@8.4.41)
+ postcss-svgo: 7.0.2(postcss@8.4.41)
+ postcss-unique-selectors: 7.0.4(postcss@8.4.41)
+ dev: true
+
+ /cssnano-utils@5.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
dev: true
@@ -2016,8 +2069,8 @@ packages:
peerDependencies:
postcss: ^8.4.31
dependencies:
- cssnano-preset-default: 7.0.6(postcss@8.4.41)
- lilconfig: 3.1.2
+ cssnano-preset-default: 7.0.7(postcss@8.4.41)
+ lilconfig: 3.1.3
postcss: 8.4.41
dev: true
@@ -2038,31 +2091,31 @@ packages:
/csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
- /data-view-buffer@1.0.1:
- resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
+ /data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
es-errors: 1.3.0
- is-data-view: 1.0.1
+ is-data-view: 1.0.2
dev: true
- /data-view-byte-length@1.0.1:
- resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
+ /data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
es-errors: 1.3.0
- is-data-view: 1.0.1
+ is-data-view: 1.0.2
dev: true
- /data-view-byte-offset@1.0.0:
- resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
+ /data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
es-errors: 1.3.0
- is-data-view: 1.0.1
+ is-data-view: 1.0.2
dev: true
/dayjs@1.11.9:
@@ -2084,8 +2137,8 @@ packages:
ms: 2.0.0
dev: true
- /debug@4.3.7:
- resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
+ /debug@4.4.1:
+ resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -2110,24 +2163,24 @@ packages:
resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
engines: {node: '>= 0.4'}
dependencies:
- array-buffer-byte-length: 1.0.1
- call-bind: 1.0.7
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.8
es-get-iterator: 1.1.3
- get-intrinsic: 1.2.4
- is-arguments: 1.1.1
- is-array-buffer: 3.0.4
- is-date-object: 1.0.5
- is-regex: 1.2.0
- is-shared-array-buffer: 1.0.3
+ get-intrinsic: 1.3.0
+ is-arguments: 1.2.0
+ is-array-buffer: 3.0.5
+ is-date-object: 1.1.0
+ is-regex: 1.2.1
+ is-shared-array-buffer: 1.0.4
isarray: 2.0.5
object-is: 1.1.6
object-keys: 1.1.1
- object.assign: 4.1.5
- regexp.prototype.flags: 1.5.3
- side-channel: 1.0.6
- which-boxed-primitive: 1.1.0
+ object.assign: 4.1.7
+ regexp.prototype.flags: 1.5.4
+ side-channel: 1.1.0
+ which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.16
+ which-typed-array: 1.1.19
dev: true
/deep-is@0.1.4:
@@ -2138,9 +2191,9 @@ packages:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
dependencies:
- es-define-property: 1.0.0
+ es-define-property: 1.0.1
es-errors: 1.3.0
- gopd: 1.1.0
+ gopd: 1.2.0
dev: true
/define-properties@1.2.1:
@@ -2260,8 +2313,8 @@ packages:
domelementtype: 2.3.0
dev: true
- /dompurify@3.2.2:
- resolution: {integrity: sha512-YMM+erhdZ2nkZ4fTNRTSI94mb7VG7uVF5vj5Zde7tImgnhZE3R6YW/IACGIHb2ux+QkEXMhe591N+5jWOmL4Zw==}
+ /dompurify@3.2.6:
+ resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==}
optionalDependencies:
'@types/trusted-types': 2.0.7
dev: false
@@ -2281,14 +2334,22 @@ packages:
domhandler: 4.3.1
dev: true
- /domutils@3.1.0:
- resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+ /domutils@3.2.2:
+ resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
dev: true
+ /dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
/eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
@@ -2308,11 +2369,11 @@ packages:
'@one-ini/wasm': 0.1.1
commander: 10.0.1
minimatch: 9.0.1
- semver: 7.6.3
+ semver: 7.7.2
dev: true
- /electron-to-chromium@1.5.68:
- resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==}
+ /electron-to-chromium@1.5.166:
+ resolution: {integrity: sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==}
dev: true
/emoji-regex@8.0.0:
@@ -2328,12 +2389,12 @@ packages:
engines: {node: '>= 4'}
dev: true
- /enhanced-resolve@5.17.1:
- resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==}
+ /enhanced-resolve@5.18.1:
+ resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
engines: {node: '>=10.13.0'}
dependencies:
graceful-fs: 4.2.11
- tapable: 2.2.1
+ tapable: 2.2.2
dev: true
/entities@1.1.2:
@@ -2353,111 +2414,114 @@ packages:
resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==}
engines: {node: '>=0.12'}
- /es-abstract@1.23.5:
- resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==}
+ /es-abstract@1.24.0:
+ resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==}
engines: {node: '>= 0.4'}
dependencies:
- array-buffer-byte-length: 1.0.1
- arraybuffer.prototype.slice: 1.0.3
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
available-typed-arrays: 1.0.7
- call-bind: 1.0.7
- data-view-buffer: 1.0.1
- data-view-byte-length: 1.0.1
- data-view-byte-offset: 1.0.0
- es-define-property: 1.0.0
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
es-errors: 1.3.0
- es-object-atoms: 1.0.0
- es-set-tostringtag: 2.0.3
+ es-object-atoms: 1.1.1
+ es-set-tostringtag: 2.1.0
es-to-primitive: 1.3.0
- function.prototype.name: 1.1.6
- get-intrinsic: 1.2.4
- get-symbol-description: 1.0.2
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ get-symbol-description: 1.1.0
globalthis: 1.0.4
- gopd: 1.1.0
+ gopd: 1.2.0
has-property-descriptors: 1.0.2
- has-proto: 1.1.0
+ has-proto: 1.2.0
has-symbols: 1.1.0
hasown: 2.0.2
- internal-slot: 1.0.7
- is-array-buffer: 3.0.4
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
is-callable: 1.2.7
- is-data-view: 1.0.1
+ is-data-view: 1.0.2
is-negative-zero: 2.0.3
- is-regex: 1.2.0
- is-shared-array-buffer: 1.0.3
- is-string: 1.1.0
- is-typed-array: 1.1.13
- is-weakref: 1.0.2
- object-inspect: 1.13.3
+ is-regex: 1.2.1
+ is-set: 2.0.3
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.1
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.4
object-keys: 1.1.1
- object.assign: 4.1.5
- regexp.prototype.flags: 1.5.3
- safe-array-concat: 1.1.2
- safe-regex-test: 1.0.3
- string.prototype.trim: 1.2.9
- string.prototype.trimend: 1.0.8
+ object.assign: 4.1.7
+ own-keys: 1.0.1
+ regexp.prototype.flags: 1.5.4
+ safe-array-concat: 1.1.3
+ safe-push-apply: 1.0.0
+ safe-regex-test: 1.1.0
+ set-proto: 1.0.0
+ stop-iteration-iterator: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
string.prototype.trimstart: 1.0.8
- typed-array-buffer: 1.0.2
- typed-array-byte-length: 1.0.1
- typed-array-byte-offset: 1.0.3
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
typed-array-length: 1.0.7
- unbox-primitive: 1.0.2
- which-typed-array: 1.1.16
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.19
dev: true
- /es-define-property@1.0.0:
- resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
+ /es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
engines: {node: '>= 0.4'}
- dependencies:
- get-intrinsic: 1.2.4
- dev: true
/es-errors@1.3.0:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- dev: true
/es-get-iterator@1.1.3:
resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
dependencies:
- call-bind: 1.0.7
- get-intrinsic: 1.2.4
+ call-bind: 1.0.8
+ get-intrinsic: 1.3.0
has-symbols: 1.1.0
- is-arguments: 1.1.1
+ is-arguments: 1.2.0
is-map: 2.0.3
is-set: 2.0.3
- is-string: 1.1.0
+ is-string: 1.1.1
isarray: 2.0.5
- stop-iteration-iterator: 1.0.0
+ stop-iteration-iterator: 1.1.0
dev: true
- /es-module-lexer@1.5.4:
- resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==}
+ /es-module-lexer@1.7.0:
+ resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
dev: true
- /es-object-atoms@1.0.0:
- resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
+ /es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
- dev: true
- /es-set-tostringtag@2.0.3:
- resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
+ /es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
has-tostringtag: 1.0.2
hasown: 2.0.2
- dev: true
/es-to-primitive@1.3.0:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
dependencies:
is-callable: 1.2.7
- is-date-object: 1.0.5
- is-symbol: 1.1.0
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
dev: true
/esbuild@0.21.5:
@@ -2542,12 +2606,12 @@ packages:
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@8.47.0)
+ '@eslint-community/eslint-utils': 4.7.0(eslint@8.47.0)
eslint: 8.47.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.1.2
- semver: 7.6.3
+ semver: 7.7.2
vue-eslint-parser: 9.4.3(eslint@8.47.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
@@ -2581,7 +2645,7 @@ packages:
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
hasBin: true
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@8.47.0)
+ '@eslint-community/eslint-utils': 4.7.0(eslint@8.47.0)
'@eslint-community/regexpp': 4.12.1
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.57.1
@@ -2591,7 +2655,7 @@ packages:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.3.7
+ debug: 4.4.1
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
@@ -2626,8 +2690,8 @@ packages:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- acorn: 8.14.0
- acorn-jsx: 5.3.2(acorn@8.14.0)
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
eslint-visitor-keys: 3.4.3
dev: true
@@ -2661,7 +2725,7 @@ packages:
/estree-walker@3.0.3:
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
dev: true
/esutils@2.0.3:
@@ -2748,8 +2812,8 @@ packages:
resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
dev: true
- /fast-glob@3.3.2:
- resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ /fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -2767,10 +2831,14 @@ packages:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
dev: true
- /fastq@1.17.1:
- resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+ /fast-uri@3.0.6:
+ resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+ dev: true
+
+ /fastq@1.19.1:
+ resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
dependencies:
- reusify: 1.0.4
+ reusify: 1.1.0
dev: true
/file-entry-cache@6.0.1:
@@ -2809,13 +2877,13 @@ packages:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
- flatted: 3.3.2
+ flatted: 3.3.3
keyv: 4.5.4
rimraf: 3.0.2
dev: true
- /flatted@3.3.2:
- resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
+ /flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
dev: true
/follow-redirects@1.15.9:
@@ -2828,8 +2896,9 @@ packages:
optional: true
dev: false
- /for-each@0.3.3:
- resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ /for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
dependencies:
is-callable: 1.2.7
dev: true
@@ -2839,20 +2908,22 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /foreground-child@3.3.0:
- resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+ /foreground-child@3.3.1:
+ resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
dependencies:
cross-spawn: 7.0.6
signal-exit: 4.1.0
dev: true
- /form-data@4.0.1:
- resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
+ /form-data@4.0.3:
+ resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==}
engines: {node: '>= 6'}
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.2
mime-types: 2.1.35
dev: false
@@ -2890,45 +2961,57 @@ packages:
/function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- dev: true
- /function.prototype.name@1.1.6:
- resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
+ /function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
define-properties: 1.2.1
- es-abstract: 1.23.5
functions-have-names: 1.2.3
+ hasown: 2.0.2
+ is-callable: 1.2.7
dev: true
/functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
dev: true
- /get-intrinsic@1.2.4:
- resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
+ /get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines: {node: '>= 0.4'}
dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
es-errors: 1.3.0
+ es-object-atoms: 1.1.1
function-bind: 1.1.2
- has-proto: 1.1.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
has-symbols: 1.1.0
hasown: 2.0.2
- dev: true
+ math-intrinsics: 1.1.0
+
+ /get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
/get-stream@8.0.1:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
dev: true
- /get-symbol-description@1.0.2:
- resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
+ /get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
es-errors: 1.3.0
- get-intrinsic: 1.2.4
+ get-intrinsic: 1.3.0
dev: true
/get-value@2.0.6:
@@ -2963,7 +3046,7 @@ packages:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
dependencies:
- foreground-child: 3.3.0
+ foreground-child: 3.3.1
jackspeak: 3.4.3
minimatch: 9.0.5
minipass: 7.1.2
@@ -2995,7 +3078,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
define-properties: 1.2.1
- gopd: 1.1.0
+ gopd: 1.2.0
dev: true
/globby@11.1.0:
@@ -3004,7 +3087,7 @@ packages:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.3.2
+ fast-glob: 3.3.3
ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0
@@ -3016,12 +3099,9 @@ packages:
delegate: 3.2.0
dev: false
- /gopd@1.1.0:
- resolution: {integrity: sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==}
+ /gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'}
- dependencies:
- get-intrinsic: 1.2.4
- dev: true
/graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
@@ -3047,8 +3127,9 @@ packages:
ansi-regex: 2.1.1
dev: true
- /has-bigints@1.0.2:
- resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
+ /has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
dev: true
/has-flag@1.0.0:
@@ -3064,27 +3145,25 @@ packages:
/has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies:
- es-define-property: 1.0.0
+ es-define-property: 1.0.1
dev: true
- /has-proto@1.1.0:
- resolution: {integrity: sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==}
+ /has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ dunder-proto: 1.0.1
dev: true
/has-symbols@1.1.0:
resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
engines: {node: '>= 0.4'}
- dev: true
/has-tostringtag@1.0.2:
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: '>= 0.4'}
dependencies:
has-symbols: 1.1.0
- dev: true
/has-value@0.3.1:
resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
@@ -3122,7 +3201,6 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
function-bind: 1.1.2
- dev: true
/he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
@@ -3165,8 +3243,8 @@ packages:
resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==}
dev: true
- /import-fresh@3.3.0:
- resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ /import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
dependencies:
parent-module: 1.0.1
@@ -3194,13 +3272,13 @@ packages:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
dev: true
- /internal-slot@1.0.7:
- resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
+ /internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
hasown: 2.0.2
- side-channel: 1.0.6
+ side-channel: 1.1.0
dev: true
/is-accessor-descriptor@1.0.1:
@@ -3210,34 +3288,39 @@ packages:
hasown: 2.0.2
dev: true
- /is-arguments@1.1.1:
- resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
+ /is-arguments@1.2.0:
+ resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
dev: true
- /is-array-buffer@3.0.4:
- resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
+ /is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
- get-intrinsic: 1.2.4
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
dev: true
- /is-async-function@2.0.0:
- resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
+ /is-async-function@2.1.1:
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
engines: {node: '>= 0.4'}
dependencies:
+ async-function: 1.0.0
+ call-bound: 1.0.4
+ get-proto: 1.0.1
has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
dev: true
/is-bigint@1.1.0:
resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
engines: {node: '>= 0.4'}
dependencies:
- has-bigints: 1.0.2
+ has-bigints: 1.1.0
dev: true
/is-binary-path@2.1.0:
@@ -3247,16 +3330,17 @@ packages:
binary-extensions: 2.3.0
dev: true
- /is-boolean-object@1.2.0:
- resolution: {integrity: sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==}
+ /is-boolean-object@1.2.2:
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
dev: true
/is-buffer@1.1.6:
resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+ dev: true
/is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
@@ -3270,17 +3354,20 @@ packages:
hasown: 2.0.2
dev: true
- /is-data-view@1.0.1:
- resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
+ /is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
engines: {node: '>= 0.4'}
dependencies:
- is-typed-array: 1.1.13
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ is-typed-array: 1.1.15
dev: true
- /is-date-object@1.0.5:
- resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ /is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
engines: {node: '>= 0.4'}
dependencies:
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
dev: true
@@ -3317,11 +3404,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /is-finalizationregistry@1.1.0:
- resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==}
+ /is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
dev: true
/is-fullwidth-code-point@3.0.0:
@@ -3329,11 +3416,14 @@ packages:
engines: {node: '>=8'}
dev: true
- /is-generator-function@1.0.10:
- resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
+ /is-generator-function@1.1.0:
+ resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
engines: {node: '>= 0.4'}
dependencies:
+ call-bound: 1.0.4
+ get-proto: 1.0.1
has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
dev: true
/is-glob@4.0.3:
@@ -3353,11 +3443,11 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /is-number-object@1.1.0:
- resolution: {integrity: sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==}
+ /is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
dev: true
@@ -3395,12 +3485,12 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
- /is-regex@1.2.0:
- resolution: {integrity: sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==}
+ /is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
- gopd: 1.1.0
+ call-bound: 1.0.4
+ gopd: 1.2.0
has-tostringtag: 1.0.2
hasown: 2.0.2
dev: true
@@ -3410,11 +3500,11 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /is-shared-array-buffer@1.0.3:
- resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
+ /is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
dev: true
/is-stream@3.0.0:
@@ -3422,28 +3512,28 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
- /is-string@1.1.0:
- resolution: {integrity: sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==}
+ /is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
dev: true
- /is-symbol@1.1.0:
- resolution: {integrity: sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==}
+ /is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
has-symbols: 1.1.0
- safe-regex-test: 1.0.3
+ safe-regex-test: 1.1.0
dev: true
- /is-typed-array@1.1.13:
- resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
+ /is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
engines: {node: '>= 0.4'}
dependencies:
- which-typed-array: 1.1.16
+ which-typed-array: 1.1.19
dev: true
/is-weakmap@2.0.2:
@@ -3451,18 +3541,19 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /is-weakref@1.0.2:
- resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+ /is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
dev: true
- /is-weakset@2.0.3:
- resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
+ /is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
- get-intrinsic: 1.2.4
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
dev: true
/is-windows@1.0.2:
@@ -3506,7 +3597,7 @@ packages:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 20.17.9
+ '@types/node': 20.19.0
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
@@ -3515,8 +3606,8 @@ packages:
resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
dev: true
- /js-beautify@1.15.1:
- resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==}
+ /js-beautify@1.15.4:
+ resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==}
engines: {node: '>=14'}
hasBin: true
dependencies:
@@ -3554,6 +3645,10 @@ packages:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
dev: true
+ /json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ dev: true
+
/json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
@@ -3611,8 +3706,8 @@ packages:
type-check: 0.4.0
dev: true
- /lilconfig@3.1.2:
- resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
+ /lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
dev: true
@@ -3663,8 +3758,8 @@ packages:
js-tokens: 4.0.0
dev: false
- /loupe@3.1.2:
- resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
+ /loupe@3.1.3:
+ resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
dev: true
/lru-cache@10.4.3:
@@ -3676,8 +3771,8 @@ packages:
hasBin: true
dev: true
- /magic-string@0.30.14:
- resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==}
+ /magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
@@ -3707,13 +3802,9 @@ packages:
hasBin: true
dev: false
- /md5@2.3.0:
- resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
- dependencies:
- charenc: 0.0.2
- crypt: 0.0.2
- is-buffer: 1.1.6
- dev: false
+ /math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
/mdn-data@2.0.14:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
@@ -3790,21 +3881,21 @@ packages:
/minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
- brace-expansion: 1.1.11
+ brace-expansion: 1.1.12
dev: true
/minimatch@9.0.1:
resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==}
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
- brace-expansion: 2.0.1
+ brace-expansion: 2.0.2
dev: true
/minimatch@9.0.5:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
- brace-expansion: 2.0.1
+ brace-expansion: 2.0.2
dev: true
/minimist@1.2.8:
@@ -3836,8 +3927,8 @@ packages:
resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
dev: true
- /nanoid@3.3.8:
- resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+ /nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
@@ -3872,8 +3963,13 @@ packages:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
dev: true
- /node-releases@2.0.18:
- resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
+ /node-forge@1.3.1:
+ resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
+ engines: {node: '>= 6.13.0'}
+ dev: false
+
+ /node-releases@2.0.19:
+ resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
dev: true
/nopt@7.2.1:
@@ -3921,8 +4017,8 @@ packages:
kind-of: 3.2.2
dev: true
- /object-inspect@1.13.3:
- resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
+ /object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
dev: true
@@ -3930,7 +4026,7 @@ packages:
resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
define-properties: 1.2.1
dev: true
@@ -3946,12 +4042,14 @@ packages:
isobject: 3.0.1
dev: true
- /object.assign@4.1.5:
- resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
+ /object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
define-properties: 1.2.1
+ es-object-atoms: 1.1.1
has-symbols: 1.1.0
object-keys: 1.1.1
dev: true
@@ -3988,6 +4086,15 @@ packages:
word-wrap: 1.2.5
dev: true
+ /own-keys@1.0.1:
+ resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.3.0
+ object-keys: 1.1.1
+ safe-push-apply: 1.0.0
+ dev: true
+
/p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
@@ -4103,249 +4210,249 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /possible-typed-array-names@1.0.0:
- resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
+ /possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
dev: true
- /postcss-calc@10.0.2(postcss@8.4.41):
- resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==}
+ /postcss-calc@10.1.1(postcss@8.4.41):
+ resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==}
engines: {node: ^18.12 || ^20.9 || >=22.0}
peerDependencies:
postcss: ^8.4.38
dependencies:
postcss: 8.4.41
- postcss-selector-parser: 6.1.2
+ postcss-selector-parser: 7.1.0
postcss-value-parser: 4.2.0
dev: true
- /postcss-colormin@7.0.2(postcss@8.4.41):
- resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==}
+ /postcss-colormin@7.0.3(postcss@8.4.41):
+ resolution: {integrity: sha512-xZxQcSyIVZbSsl1vjoqZAcMYYdnJsIyG8OvqShuuqf12S88qQboxxEy0ohNCOLwVPXTU+hFHvJPACRL2B5ohTA==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- browserslist: 4.24.2
+ browserslist: 4.25.0
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-convert-values@7.0.4(postcss@8.4.41):
- resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==}
+ /postcss-convert-values@7.0.5(postcss@8.4.41):
+ resolution: {integrity: sha512-0VFhH8nElpIs3uXKnVtotDJJNX0OGYSZmdt4XfSfvOMrFw1jKfpwpZxfC4iN73CTM/MWakDEmsHQXkISYj4BXw==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- browserslist: 4.24.2
+ browserslist: 4.25.0
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-discard-comments@7.0.3(postcss@8.4.41):
- resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==}
+ /postcss-discard-comments@7.0.4(postcss@8.4.41):
+ resolution: {integrity: sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
- postcss-selector-parser: 6.1.2
+ postcss-selector-parser: 7.1.0
dev: true
- /postcss-discard-duplicates@7.0.1(postcss@8.4.41):
- resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==}
+ /postcss-discard-duplicates@7.0.2(postcss@8.4.41):
+ resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
dev: true
- /postcss-discard-empty@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==}
+ /postcss-discard-empty@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
dev: true
- /postcss-discard-overridden@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==}
+ /postcss-discard-overridden@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
dev: true
- /postcss-merge-longhand@7.0.4(postcss@8.4.41):
- resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==}
+ /postcss-merge-longhand@7.0.5(postcss@8.4.41):
+ resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
- stylehacks: 7.0.4(postcss@8.4.41)
+ stylehacks: 7.0.5(postcss@8.4.41)
dev: true
- /postcss-merge-rules@7.0.4(postcss@8.4.41):
- resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==}
+ /postcss-merge-rules@7.0.5(postcss@8.4.41):
+ resolution: {integrity: sha512-ZonhuSwEaWA3+xYbOdJoEReKIBs5eDiBVLAGpYZpNFPzXZcEE5VKR7/qBEQvTZpiwjqhhqEQ+ax5O3VShBj9Wg==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- browserslist: 4.24.2
+ browserslist: 4.25.0
caniuse-api: 3.0.0
- cssnano-utils: 5.0.0(postcss@8.4.41)
+ cssnano-utils: 5.0.1(postcss@8.4.41)
postcss: 8.4.41
- postcss-selector-parser: 6.1.2
+ postcss-selector-parser: 7.1.0
dev: true
- /postcss-minify-font-values@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==}
+ /postcss-minify-font-values@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-minify-gradients@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==}
+ /postcss-minify-gradients@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
colord: 2.9.3
- cssnano-utils: 5.0.0(postcss@8.4.41)
+ cssnano-utils: 5.0.1(postcss@8.4.41)
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-minify-params@7.0.2(postcss@8.4.41):
- resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==}
+ /postcss-minify-params@7.0.3(postcss@8.4.41):
+ resolution: {integrity: sha512-vUKV2+f5mtjewYieanLX0xemxIp1t0W0H/D11u+kQV/MWdygOO7xPMkbK+r9P6Lhms8MgzKARF/g5OPXhb8tgg==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- browserslist: 4.24.2
- cssnano-utils: 5.0.0(postcss@8.4.41)
+ browserslist: 4.25.0
+ cssnano-utils: 5.0.1(postcss@8.4.41)
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-minify-selectors@7.0.4(postcss@8.4.41):
- resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==}
+ /postcss-minify-selectors@7.0.5(postcss@8.4.41):
+ resolution: {integrity: sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
cssesc: 3.0.0
postcss: 8.4.41
- postcss-selector-parser: 6.1.2
+ postcss-selector-parser: 7.1.0
dev: true
- /postcss-normalize-charset@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==}
+ /postcss-normalize-charset@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
dev: true
- /postcss-normalize-display-values@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==}
+ /postcss-normalize-display-values@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-normalize-positions@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==}
+ /postcss-normalize-positions@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-normalize-repeat-style@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==}
+ /postcss-normalize-repeat-style@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-normalize-string@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==}
+ /postcss-normalize-string@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-normalize-timing-functions@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==}
+ /postcss-normalize-timing-functions@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-normalize-unicode@7.0.2(postcss@8.4.41):
- resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==}
+ /postcss-normalize-unicode@7.0.3(postcss@8.4.41):
+ resolution: {integrity: sha512-EcoA29LvG3F+EpOh03iqu+tJY3uYYKzArqKJHxDhUYLa2u58aqGq16K6/AOsXD9yqLN8O6y9mmePKN5cx6krOw==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- browserslist: 4.24.2
+ browserslist: 4.25.0
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-normalize-url@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==}
+ /postcss-normalize-url@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-normalize-whitespace@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==}
+ /postcss-normalize-whitespace@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
- /postcss-ordered-values@7.0.1(postcss@8.4.41):
- resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==}
+ /postcss-ordered-values@7.0.2(postcss@8.4.41):
+ resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- cssnano-utils: 5.0.0(postcss@8.4.41)
+ cssnano-utils: 5.0.1(postcss@8.4.41)
postcss: 8.4.41
postcss-value-parser: 4.2.0
dev: true
@@ -4358,22 +4465,22 @@ packages:
postcss: 5.2.18
dev: true
- /postcss-reduce-initial@7.0.2(postcss@8.4.41):
- resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==}
+ /postcss-reduce-initial@7.0.3(postcss@8.4.41):
+ resolution: {integrity: sha512-RFvkZaqiWtGMlVjlUHpaxGqEL27lgt+Q2Ixjf83CRAzqdo+TsDyGPtJUbPx2MuYIJ+sCQc2TrOvRnhcXQfgIVA==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- browserslist: 4.24.2
+ browserslist: 4.25.0
caniuse-api: 3.0.0
postcss: 8.4.41
dev: true
- /postcss-reduce-transforms@7.0.0(postcss@8.4.41):
- resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==}
+ /postcss-reduce-transforms@7.0.1(postcss@8.4.41):
+ resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
@@ -4387,25 +4494,33 @@ packages:
util-deprecate: 1.0.2
dev: true
- /postcss-svgo@7.0.1(postcss@8.4.41):
- resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==}
+ /postcss-selector-parser@7.1.0:
+ resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==}
+ engines: {node: '>=4'}
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+ dev: true
+
+ /postcss-svgo@7.0.2(postcss@8.4.41):
+ resolution: {integrity: sha512-5Dzy66JlnRM6pkdOTF8+cGsB1fnERTE8Nc+Eed++fOWo1hdsBptCsbG8UuJkgtZt75bRtMJIrPeZmtfANixdFA==}
engines: {node: ^18.12.0 || ^20.9.0 || >= 18}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
postcss-value-parser: 4.2.0
svgo: 3.3.2
dev: true
- /postcss-unique-selectors@7.0.3(postcss@8.4.41):
- resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==}
+ /postcss-unique-selectors@7.0.4(postcss@8.4.41):
+ resolution: {integrity: sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
postcss: 8.4.41
- postcss-selector-parser: 6.1.2
+ postcss-selector-parser: 7.1.0
dev: true
/postcss-value-parser@4.2.0:
@@ -4426,7 +4541,7 @@ packages:
resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
- nanoid: 3.3.8
+ nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
@@ -4543,22 +4658,20 @@ packages:
picomatch: 2.3.1
dev: true
- /reflect.getprototypeof@1.0.7:
- resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==}
+ /reflect.getprototypeof@1.0.10:
+ resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.5
+ es-abstract: 1.24.0
es-errors: 1.3.0
- get-intrinsic: 1.2.4
- gopd: 1.1.0
- which-builtin-type: 1.2.0
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ which-builtin-type: 1.2.1
dev: true
- /regenerator-runtime@0.14.1:
- resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
-
/regex-not@1.0.2:
resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
engines: {node: '>=0.10.0'}
@@ -4567,13 +4680,15 @@ packages:
safe-regex: 1.1.0
dev: true
- /regexp.prototype.flags@1.5.3:
- resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==}
+ /regexp.prototype.flags@1.5.4:
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
define-properties: 1.2.1
es-errors: 1.3.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
set-function-name: 2.0.2
dev: true
@@ -4587,6 +4702,11 @@ packages:
engines: {node: '>=0.10'}
dev: true
+ /require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/resize-observer-polyfill@1.5.1:
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
dev: false
@@ -4606,8 +4726,8 @@ packages:
engines: {node: '>=0.12'}
dev: true
- /reusify@1.0.4:
- resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ /reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: true
@@ -4619,31 +4739,33 @@ packages:
glob: 7.2.3
dev: true
- /rollup@4.28.0:
- resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==}
+ /rollup@4.43.0:
+ resolution: {integrity: sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.7
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.28.0
- '@rollup/rollup-android-arm64': 4.28.0
- '@rollup/rollup-darwin-arm64': 4.28.0
- '@rollup/rollup-darwin-x64': 4.28.0
- '@rollup/rollup-freebsd-arm64': 4.28.0
- '@rollup/rollup-freebsd-x64': 4.28.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.28.0
- '@rollup/rollup-linux-arm-musleabihf': 4.28.0
- '@rollup/rollup-linux-arm64-gnu': 4.28.0
- '@rollup/rollup-linux-arm64-musl': 4.28.0
- '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0
- '@rollup/rollup-linux-riscv64-gnu': 4.28.0
- '@rollup/rollup-linux-s390x-gnu': 4.28.0
- '@rollup/rollup-linux-x64-gnu': 4.28.0
- '@rollup/rollup-linux-x64-musl': 4.28.0
- '@rollup/rollup-win32-arm64-msvc': 4.28.0
- '@rollup/rollup-win32-ia32-msvc': 4.28.0
- '@rollup/rollup-win32-x64-msvc': 4.28.0
+ '@rollup/rollup-android-arm-eabi': 4.43.0
+ '@rollup/rollup-android-arm64': 4.43.0
+ '@rollup/rollup-darwin-arm64': 4.43.0
+ '@rollup/rollup-darwin-x64': 4.43.0
+ '@rollup/rollup-freebsd-arm64': 4.43.0
+ '@rollup/rollup-freebsd-x64': 4.43.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.43.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.43.0
+ '@rollup/rollup-linux-arm64-gnu': 4.43.0
+ '@rollup/rollup-linux-arm64-musl': 4.43.0
+ '@rollup/rollup-linux-loongarch64-gnu': 4.43.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.43.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.43.0
+ '@rollup/rollup-linux-riscv64-musl': 4.43.0
+ '@rollup/rollup-linux-s390x-gnu': 4.43.0
+ '@rollup/rollup-linux-x64-gnu': 4.43.0
+ '@rollup/rollup-linux-x64-musl': 4.43.0
+ '@rollup/rollup-win32-arm64-msvc': 4.43.0
+ '@rollup/rollup-win32-ia32-msvc': 4.43.0
+ '@rollup/rollup-win32-x64-msvc': 4.43.0
fsevents: 2.3.3
dev: true
@@ -4653,12 +4775,13 @@ packages:
queue-microtask: 1.2.3
dev: true
- /safe-array-concat@1.1.2:
- resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
+ /safe-array-concat@1.1.3:
+ resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
engines: {node: '>=0.4'}
dependencies:
- call-bind: 1.0.7
- get-intrinsic: 1.2.4
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
has-symbols: 1.1.0
isarray: 2.0.5
dev: true
@@ -4667,13 +4790,21 @@ packages:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: true
- /safe-regex-test@1.0.3:
- resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
+ /safe-push-apply@1.0.0:
+ resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
es-errors: 1.3.0
- is-regex: 1.2.0
+ isarray: 2.0.5
+ dev: true
+
+ /safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
dev: true
/safe-regex@1.1.0:
@@ -4682,7 +4813,7 @@ packages:
ret: 0.1.15
dev: true
- /sass-loader@13.3.2(sass@1.66.1)(webpack@5.96.1):
+ /sass-loader@13.3.2(sass@1.66.1)(webpack@5.99.9):
resolution: {integrity: sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==}
engines: {node: '>= 14.15.0'}
peerDependencies:
@@ -4703,7 +4834,7 @@ packages:
dependencies:
neo-async: 2.6.2
sass: 1.66.1
- webpack: 5.96.1
+ webpack: 5.99.9
dev: true
/sass@1.66.1:
@@ -4716,13 +4847,14 @@ packages:
source-map-js: 1.2.1
dev: true
- /schema-utils@3.3.0:
- resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
+ /schema-utils@4.3.2:
+ resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==}
engines: {node: '>= 10.13.0'}
dependencies:
'@types/json-schema': 7.0.15
- ajv: 6.12.6
- ajv-keywords: 3.5.2(ajv@6.12.6)
+ ajv: 8.17.1
+ ajv-formats: 2.1.1(ajv@8.17.1)
+ ajv-keywords: 5.1.0(ajv@8.17.1)
dev: true
/scroll-into-view-if-needed@2.2.31:
@@ -4735,8 +4867,8 @@ packages:
resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==}
dev: false
- /semver@7.6.3:
- resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+ /semver@7.7.2:
+ resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
engines: {node: '>=10'}
hasBin: true
dev: true
@@ -4754,8 +4886,8 @@ packages:
define-data-property: 1.1.4
es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.4
- gopd: 1.1.0
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
has-property-descriptors: 1.0.2
dev: true
@@ -4769,6 +4901,15 @@ packages:
has-property-descriptors: 1.0.2
dev: true
+ /set-proto@1.0.0:
+ resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ dunder-proto: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ dev: true
+
/set-value@2.0.1:
resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
engines: {node: '>=0.10.0'}
@@ -4795,14 +4936,44 @@ packages:
engines: {node: '>=8'}
dev: true
- /side-channel@1.0.6:
- resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
+ /side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
es-errors: 1.3.0
- get-intrinsic: 1.2.4
- object-inspect: 1.13.3
+ object-inspect: 1.13.4
+ dev: true
+
+ /side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ dev: true
+
+ /side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+ dev: true
+
+ /side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
dev: true
/siginfo@2.0.0:
@@ -4911,15 +5082,16 @@ packages:
object-copy: 0.1.0
dev: true
- /std-env@3.8.0:
- resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
+ /std-env@3.9.0:
+ resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
dev: true
- /stop-iteration-iterator@1.0.0:
- resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
+ /stop-iteration-iterator@1.1.0:
+ resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: '>= 0.4'}
dependencies:
- internal-slot: 1.0.7
+ es-errors: 1.3.0
+ internal-slot: 1.1.0
dev: true
/strict-uri-encode@1.1.0:
@@ -4945,31 +5117,36 @@ packages:
strip-ansi: 7.1.0
dev: true
- /string.prototype.trim@1.2.9:
- resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
+ /string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-data-property: 1.1.4
define-properties: 1.2.1
- es-abstract: 1.23.5
- es-object-atoms: 1.0.0
+ es-abstract: 1.24.0
+ es-object-atoms: 1.1.1
+ has-property-descriptors: 1.0.2
dev: true
- /string.prototype.trimend@1.0.8:
- resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
+ /string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
define-properties: 1.2.1
- es-object-atoms: 1.0.0
+ es-object-atoms: 1.1.1
dev: true
/string.prototype.trimstart@1.0.8:
resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
define-properties: 1.2.1
- es-object-atoms: 1.0.0
+ es-object-atoms: 1.1.1
dev: true
/string_decoder@1.3.0:
@@ -5009,19 +5186,19 @@ packages:
engines: {node: '>=8'}
dev: true
- /stylehacks@7.0.4(postcss@8.4.41):
- resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==}
+ /stylehacks@7.0.5(postcss@8.4.41):
+ resolution: {integrity: sha512-5kNb7V37BNf0Q3w+1pxfa+oiNPS++/b4Jil9e/kPDgrk1zjEd6uR7SZeJiYaLYH6RRSC1XX2/37OTeU/4FvuIA==}
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
peerDependencies:
- postcss: ^8.4.31
+ postcss: ^8.4.32
dependencies:
- browserslist: 4.24.2
+ browserslist: 4.25.0
postcss: 8.4.41
- postcss-selector-parser: 6.1.2
+ postcss-selector-parser: 7.1.0
dev: true
- /stylis@4.3.4:
- resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==}
+ /stylis@4.3.6:
+ resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
dev: false
/supports-color@2.0.0:
@@ -5065,7 +5242,7 @@ packages:
posthtml-rename-id: 1.0.12
posthtml-svg-mode: 1.0.3
query-string: 4.3.4
- traverse: 0.6.10
+ traverse: 0.6.11
transitivePeerDependencies:
- supports-color
dev: true
@@ -5102,17 +5279,17 @@ packages:
resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==}
engines: {node: ^14.18.0 || >=16.0.0}
dependencies:
- '@pkgr/core': 0.1.1
+ '@pkgr/core': 0.1.2
tslib: 2.8.1
dev: true
- /tapable@2.2.1:
- resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ /tapable@2.2.2:
+ resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
engines: {node: '>=6'}
dev: true
- /terser-webpack-plugin@5.3.10(webpack@5.96.1):
- resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==}
+ /terser-webpack-plugin@5.3.14(webpack@5.99.9):
+ resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==}
engines: {node: '>= 10.13.0'}
peerDependencies:
'@swc/core': '*'
@@ -5129,19 +5306,19 @@ packages:
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
- schema-utils: 3.3.0
+ schema-utils: 4.3.2
serialize-javascript: 6.0.2
- terser: 5.36.0
- webpack: 5.96.1
+ terser: 5.42.0
+ webpack: 5.99.9
dev: true
- /terser@5.36.0:
- resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==}
+ /terser@5.42.0:
+ resolution: {integrity: sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==}
engines: {node: '>=10'}
hasBin: true
dependencies:
'@jridgewell/source-map': 0.3.6
- acorn: 8.14.0
+ acorn: 8.15.0
commander: 2.20.3
source-map-support: 0.5.21
dev: true
@@ -5163,8 +5340,8 @@ packages:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
dev: true
- /tinypool@1.0.2:
- resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
+ /tinypool@1.1.0:
+ resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==}
engines: {node: ^18.0.0 || >=20.0.0}
dev: true
@@ -5210,13 +5387,13 @@ packages:
safe-regex: 1.1.0
dev: true
- /traverse@0.6.10:
- resolution: {integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==}
+ /traverse@0.6.11:
+ resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==}
engines: {node: '>= 0.4'}
dependencies:
- gopd: 1.1.0
- typedarray.prototype.slice: 1.0.3
- which-typed-array: 1.1.16
+ gopd: 1.2.0
+ typedarray.prototype.slice: 1.0.5
+ which-typed-array: 1.1.19
dev: true
/ts-api-utils@1.4.3(typescript@5.0.2):
@@ -5248,61 +5425,63 @@ packages:
engines: {node: '>=10'}
dev: true
- /typed-array-buffer@1.0.2:
- resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
+ /typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bound: 1.0.4
es-errors: 1.3.0
- is-typed-array: 1.1.13
+ is-typed-array: 1.1.15
dev: true
- /typed-array-byte-length@1.0.1:
- resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
+ /typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
- for-each: 0.3.3
- gopd: 1.1.0
- has-proto: 1.1.0
- is-typed-array: 1.1.13
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
dev: true
- /typed-array-byte-offset@1.0.3:
- resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==}
+ /typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.7
- call-bind: 1.0.7
- for-each: 0.3.3
- gopd: 1.1.0
- has-proto: 1.1.0
- is-typed-array: 1.1.13
- reflect.getprototypeof: 1.0.7
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.10
dev: true
/typed-array-length@1.0.7:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
- for-each: 0.3.3
- gopd: 1.1.0
- is-typed-array: 1.1.13
- possible-typed-array-names: 1.0.0
- reflect.getprototypeof: 1.0.7
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.1.0
+ reflect.getprototypeof: 1.0.10
dev: true
- /typedarray.prototype.slice@1.0.3:
- resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==}
+ /typedarray.prototype.slice@1.0.5:
+ resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
+ call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.5
+ es-abstract: 1.24.0
es-errors: 1.3.0
- typed-array-buffer: 1.0.2
- typed-array-byte-offset: 1.0.3
+ get-proto: 1.0.1
+ math-intrinsics: 1.1.0
+ typed-array-buffer: 1.0.3
+ typed-array-byte-offset: 1.0.4
dev: true
/typescript@5.0.2:
@@ -5310,17 +5489,18 @@ packages:
engines: {node: '>=12.20'}
hasBin: true
- /unbox-primitive@1.0.2:
- resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ /unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
- has-bigints: 1.0.2
+ call-bound: 1.0.4
+ has-bigints: 1.1.0
has-symbols: 1.1.0
- which-boxed-primitive: 1.1.0
+ which-boxed-primitive: 1.1.1
dev: true
- /undici-types@6.19.8:
- resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
+ /undici-types@6.21.0:
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
dev: true
/union-value@1.0.1:
@@ -5346,13 +5526,13 @@ packages:
isobject: 3.0.1
dev: true
- /update-browserslist-db@1.1.1(browserslist@4.24.2):
- resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+ /update-browserslist-db@1.1.3(browserslist@4.25.0):
+ resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.24.2
+ browserslist: 4.25.0
escalade: 3.2.0
picocolors: 1.1.1
dev: true
@@ -5388,7 +5568,7 @@ packages:
hasBin: true
dependencies:
cac: 6.7.14
- debug: 4.3.7
+ debug: 4.4.1
pathe: 1.1.2
tinyrainbow: 1.2.0
vite: 5.4.0(@types/node@20.5.3)(sass@1.66.1)
@@ -5411,7 +5591,7 @@ packages:
dependencies:
'@types/svgo': 2.6.4
cors: 2.8.5
- debug: 4.3.7
+ debug: 4.4.1
etag: 1.8.1
fs-extra: 10.1.0
pathe: 0.2.0
@@ -5456,7 +5636,7 @@ packages:
'@types/node': 20.5.3
esbuild: 0.21.5
postcss: 8.4.41
- rollup: 4.28.0
+ rollup: 4.43.0
sass: 1.66.1
optionalDependencies:
fsevents: 2.3.3
@@ -5490,20 +5670,20 @@ packages:
'@ampproject/remapping': 2.3.0
'@types/node': 20.5.3
'@vitest/expect': 2.0.5
- '@vitest/pretty-format': 2.1.8
+ '@vitest/pretty-format': 2.1.9
'@vitest/runner': 2.0.5
'@vitest/snapshot': 2.0.5
'@vitest/spy': 2.0.5
'@vitest/utils': 2.0.5
- chai: 5.1.2
- debug: 4.3.7
+ chai: 5.2.0
+ debug: 4.4.1
execa: 8.0.1
happy-dom: 15.0.0
- magic-string: 0.30.14
+ magic-string: 0.30.17
pathe: 1.1.2
- std-env: 3.8.0
+ std-env: 3.9.0
tinybench: 2.9.0
- tinypool: 1.0.2
+ tinypool: 1.1.0
tinyrainbow: 1.2.0
vite: 5.4.0(@types/node@20.5.3)(sass@1.66.1)
vite-node: 2.0.5(@types/node@20.5.3)(sass@1.66.1)
@@ -5519,8 +5699,8 @@ packages:
- terser
dev: true
- /vue-component-type-helpers@2.1.10:
- resolution: {integrity: sha512-lfgdSLQKrUmADiSV6PbBvYgQ33KF3Ztv6gP85MfGaGaSGMTXORVaHT1EHfsqCgzRNBstPKYDmvAV9Do5CmJ07A==}
+ /vue-component-type-helpers@2.2.10:
+ resolution: {integrity: sha512-iDUO7uQK+Sab2tYuiP9D1oLujCWlhHELHMgV/cB13cuGbG4qwkLHvtfWb6FzvxrIOPDnU0oHsz2MlQjhYDeaHA==}
dev: true
/vue-demi@0.14.10(vue@3.4.37):
@@ -5543,7 +5723,7 @@ packages:
peerDependencies:
vue: ^3.0.0
dependencies:
- dompurify: 3.2.2
+ dompurify: 3.2.6
vue: 3.4.37(typescript@5.0.2)
dev: false
@@ -5553,14 +5733,14 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
dependencies:
- debug: 4.3.7
+ debug: 4.4.1
eslint: 8.47.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
esquery: 1.6.0
lodash: 4.17.21
- semver: 7.6.3
+ semver: 7.7.2
transitivePeerDependencies:
- supports-color
dev: true
@@ -5602,7 +5782,7 @@ packages:
dependencies:
'@vue/language-core': 1.8.5(typescript@5.0.2)
'@vue/typescript': 1.8.5(typescript@5.0.2)
- semver: 7.6.3
+ semver: 7.7.2
typescript: 5.0.2
dev: true
@@ -5637,8 +5817,8 @@ packages:
loose-envify: 1.4.0
dev: false
- /watchpack@2.4.2:
- resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==}
+ /watchpack@2.4.4:
+ resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==}
engines: {node: '>=10.13.0'}
dependencies:
glob-to-regexp: 0.4.1
@@ -5650,13 +5830,13 @@ packages:
engines: {node: '>=12'}
dev: true
- /webpack-sources@3.2.3:
- resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ /webpack-sources@3.3.2:
+ resolution: {integrity: sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==}
engines: {node: '>=10.13.0'}
dev: true
- /webpack@5.96.1:
- resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==}
+ /webpack@5.99.9:
+ resolution: {integrity: sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -5666,15 +5846,16 @@ packages:
optional: true
dependencies:
'@types/eslint-scope': 3.7.7
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/wasm-edit': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
- acorn: 8.14.0
- browserslist: 4.24.2
+ acorn: 8.15.0
+ browserslist: 4.25.0
chrome-trace-event: 1.0.4
- enhanced-resolve: 5.17.1
- es-module-lexer: 1.5.4
+ enhanced-resolve: 5.18.1
+ es-module-lexer: 1.7.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
@@ -5683,11 +5864,11 @@ packages:
loader-runner: 4.3.0
mime-types: 2.1.35
neo-async: 2.6.2
- schema-utils: 3.3.0
- tapable: 2.2.1
- terser-webpack-plugin: 5.3.10(webpack@5.96.1)
- watchpack: 2.4.2
- webpack-sources: 3.2.3
+ schema-utils: 4.3.2
+ tapable: 2.2.2
+ terser-webpack-plugin: 5.3.14(webpack@5.99.9)
+ watchpack: 2.4.4
+ webpack-sources: 3.3.2
transitivePeerDependencies:
- '@swc/core'
- esbuild
@@ -5699,34 +5880,34 @@ packages:
engines: {node: '>=12'}
dev: true
- /which-boxed-primitive@1.1.0:
- resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==}
+ /which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
engines: {node: '>= 0.4'}
dependencies:
is-bigint: 1.1.0
- is-boolean-object: 1.2.0
- is-number-object: 1.1.0
- is-string: 1.1.0
- is-symbol: 1.1.0
+ is-boolean-object: 1.2.2
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
dev: true
- /which-builtin-type@1.2.0:
- resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==}
+ /which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.7
- function.prototype.name: 1.1.6
+ call-bound: 1.0.4
+ function.prototype.name: 1.1.8
has-tostringtag: 1.0.2
- is-async-function: 2.0.0
- is-date-object: 1.0.5
- is-finalizationregistry: 1.1.0
- is-generator-function: 1.0.10
- is-regex: 1.2.0
- is-weakref: 1.0.2
+ is-async-function: 2.1.1
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.1.0
+ is-regex: 1.2.1
+ is-weakref: 1.1.1
isarray: 2.0.5
- which-boxed-primitive: 1.1.0
+ which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.16
+ which-typed-array: 1.1.19
dev: true
/which-collection@1.0.2:
@@ -5736,17 +5917,19 @@ packages:
is-map: 2.0.3
is-set: 2.0.3
is-weakmap: 2.0.2
- is-weakset: 2.0.3
+ is-weakset: 2.0.4
dev: true
- /which-typed-array@1.1.16:
- resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==}
+ /which-typed-array@1.1.19:
+ resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.7
- call-bind: 1.0.7
- for-each: 0.3.3
- gopd: 1.1.0
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
has-tostringtag: 1.0.2
dev: true
diff --git a/bigtop-manager-ui/src/api/login/index.ts b/bigtop-manager-ui/src/api/login/index.ts
index 09492cc87..5bc004cb0 100644
--- a/bigtop-manager-ui/src/api/login/index.ts
+++ b/bigtop-manager-ui/src/api/login/index.ts
@@ -20,6 +20,26 @@
import { LoginReq, LoginVO } from '@/api/login/types.ts'
import request from '@/api/request.ts'
+export const getSalt = (username: string): Promise => {
+ return request({
+ method: 'get',
+ url: '/salt',
+ params: {
+ username
+ }
+ })
+}
+
+export const getNonce = (username: string): Promise => {
+ return request({
+ method: 'get',
+ url: '/nonce',
+ params: {
+ username
+ }
+ })
+}
+
export const login = (data: LoginReq): Promise => {
return request({
method: 'post',
diff --git a/bigtop-manager-ui/src/api/login/types.ts b/bigtop-manager-ui/src/api/login/types.ts
index 088a4e25e..9ce9130af 100644
--- a/bigtop-manager-ui/src/api/login/types.ts
+++ b/bigtop-manager-ui/src/api/login/types.ts
@@ -20,6 +20,7 @@
export interface LoginReq {
username: string
password: string
+ nonce: string
}
export interface LoginVO {
diff --git a/bigtop-manager-ui/src/pages/login/index.vue b/bigtop-manager-ui/src/pages/login/index.vue
index ab0fc41fd..907857e22 100644
--- a/bigtop-manager-ui/src/pages/login/index.vue
+++ b/bigtop-manager-ui/src/pages/login/index.vue
@@ -21,11 +21,11 @@
import { useRouter } from 'vue-router'
import { reactive, shallowRef } from 'vue'
import { UserOutlined, LockOutlined } from '@ant-design/icons-vue'
- import { login } from '@/api/login'
+ import { getSalt, getNonce, login } from '@/api/login'
import { message } from 'ant-design-vue'
import { useI18n } from 'vue-i18n'
- import md5 from 'md5'
import SelectLang from '@/components/select-lang/index.vue'
+ import { deriveKey } from '@/utils/pbkdf2.ts'
const i18n = useI18n()
const router = useRouter()
@@ -44,9 +44,22 @@
const hide = message.loading(i18n.t('login.logging_in'), 0)
try {
await formRef.value?.validate()
+ const username = loginModel.username
+
+ const salt = await getSalt(username).then(async (res: string) => {
+ return res
+ })
+
+ const nonce = await getNonce(username).then(async (res: string) => {
+ return res
+ })
+
+ const encryptPwd = deriveKey(loginModel.password, salt)
+
const res = await login({
- username: loginModel.username,
- password: md5(loginModel.password)
+ username: username,
+ password: encryptPwd,
+ nonce: nonce
})
if (loginModel.remember) {
@@ -90,7 +103,7 @@
{{ $t('login.tips') }}
-
+
diff --git a/bigtop-manager-ui/src/utils/pbkdf2.ts b/bigtop-manager-ui/src/utils/pbkdf2.ts
new file mode 100644
index 000000000..3ee110045
--- /dev/null
+++ b/bigtop-manager-ui/src/utils/pbkdf2.ts
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import forge from 'node-forge'
+
+/**
+ * Derives a cryptographic key using PBKDF2 and returns it as a hexadecimal string.
+ *
+ * @param password - The user's password
+ * @param salt - The salt value used in key derivation
+ * @returns A hexadecimal string representation of the derived key
+ */
+export function deriveKey(password: string, salt: string): string {
+ const iterations = 600000
+ // Key size in bytes: 32 bytes = 256 bits
+ const keySizeInBytes = 32
+
+ // Derive key using PBKDF2 with HMAC-SHA256
+ const derivedKey = forge.pkcs5.pbkdf2(password, salt, iterations, keySizeInBytes, 'sha256')
+
+ // Convert byte array to hexadecimal string
+ return forge.util.bytesToHex(derivedKey)
+}