getSupportedContentTypes();
+ HttpServletRequest getServletRequest();
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/RequestWithChecksum.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/RequestWithChecksum.java
index fa47bc7c0a..f86d656136 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/RequestWithChecksum.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/RequestWithChecksum.java
@@ -1,17 +1,23 @@
package org.bigbluebutton.api.model.request;
+import jakarta.ws.rs.core.MediaType;
import org.bigbluebutton.api.model.shared.Checksum;
+import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.Map;
+import java.util.Set;
public abstract class RequestWithChecksum & RequestParameters> implements Request
{
@Valid
protected Checksum checksum;
- protected RequestWithChecksum(Checksum checksum) {
+ protected HttpServletRequest servletRequest;
+
+ protected RequestWithChecksum(Checksum checksum, HttpServletRequest servletRequest) {
this.checksum = checksum;
+ this.servletRequest = servletRequest;
}
public Checksum getChecksum() {
@@ -27,4 +33,14 @@ public abstract class RequestWithChecksum
& RequestParameters>
public void convertParamsFromString() {
}
+
+ @Override
+ public Set getSupportedContentTypes() {
+ return Set.of(MediaType.APPLICATION_FORM_URLENCODED, MediaType.MULTIPART_FORM_DATA);
+ }
+
+ @Override
+ public HttpServletRequest getServletRequest() {
+ return servletRequest;
+ }
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/RequestWithSession.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/RequestWithSession.java
new file mode 100644
index 0000000000..7dc5c6445b
--- /dev/null
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/RequestWithSession.java
@@ -0,0 +1,25 @@
+package org.bigbluebutton.api.model.request;
+
+import jakarta.ws.rs.core.MediaType;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Set;
+
+public abstract class RequestWithSession & RequestParameters> implements Request
{
+
+ protected HttpServletRequest servletRequest;
+
+ protected RequestWithSession(HttpServletRequest servletRequest) {
+ this.servletRequest = servletRequest;
+ }
+
+ @Override
+ public Set getSupportedContentTypes() {
+ return Set.of(MediaType.APPLICATION_FORM_URLENCODED, MediaType.MULTIPART_FORM_DATA);
+ }
+
+ @Override
+ public HttpServletRequest getServletRequest() {
+ return servletRequest;
+ }
+}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SendChatMessage.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SendChatMessage.java
new file mode 100755
index 0000000000..d003fea8d8
--- /dev/null
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SendChatMessage.java
@@ -0,0 +1,72 @@
+package org.bigbluebutton.api.model.request;
+
+import org.bigbluebutton.api.model.constraint.MeetingIDConstraint;
+import org.bigbluebutton.api.model.constraint.MeetingNameConstraint;
+import org.bigbluebutton.api.model.constraint.NotNull;
+import org.bigbluebutton.api.model.constraint.Size;
+import org.bigbluebutton.api.model.shared.Checksum;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+public class SendChatMessage extends RequestWithChecksum {
+
+ public enum Params implements RequestParameters {
+ MEETING_ID("meetingID"),
+ USER_NAME("userName"),
+ MESSAGE("message");
+
+ private final String value;
+
+ Params(String value) { this.value = value; }
+
+ public String getValue() { return value; }
+ }
+
+ @MeetingIDConstraint
+ private String meetingID;
+
+ private String userName;
+
+ @NotNull(message = "You must provide the param message")
+ @Size(min = 1, max = 500, message = "Param message must be between 1 and 500 characters")
+ private String message;
+
+ public SendChatMessage(Checksum checksum, HttpServletRequest servletRequest) {
+ super(checksum, servletRequest);
+ }
+
+ public String getMeetingID() {
+ return meetingID;
+ }
+
+ public void setMeetingID(String meetingID) {
+ this.meetingID = meetingID;
+ }
+
+ @Size(max = 255, message = "Param userName must not exceed 255 characters")
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+
+ @Override
+ public void populateFromParamsMap(Map params) {
+ if(params.containsKey(SendChatMessage.Params.MEETING_ID.getValue())) setMeetingID(params.get(SendChatMessage.Params.MEETING_ID.getValue())[0]);
+ if(params.containsKey(SendChatMessage.Params.USER_NAME.getValue())) setUserName(params.get(Params.USER_NAME.getValue())[0]);
+ if(params.containsKey(SendChatMessage.Params.MESSAGE.getValue())) setMessage(params.get(Params.MESSAGE.getValue())[0]);
+
+ }
+}
\ No newline at end of file
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SignOut.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SignOut.java
index 3a0ff66122..da67b88b91 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SignOut.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SignOut.java
@@ -2,10 +2,11 @@ package org.bigbluebutton.api.model.request;
import org.bigbluebutton.api.model.constraint.UserSessionConstraint;
+import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotNull;
import java.util.Map;
-public class SignOut implements Request {
+public class SignOut extends RequestWithSession {
public enum Params implements RequestParameters {
SESSION_TOKEN("sessionToken");
@@ -20,6 +21,10 @@ public class SignOut implements Request {
@UserSessionConstraint
private String sessionToken;
+ public SignOut(HttpServletRequest servletRequest) {
+ super(servletRequest);
+ }
+
public String getSessionToken() {
return sessionToken;
}
@@ -30,7 +35,7 @@ public class SignOut implements Request {
@Override
public void populateFromParamsMap(Map params) {
- if(params.containsKey(Enter.Params.SESSION_TOKEN.getValue())) setSessionToken(params.get(Enter.Params.SESSION_TOKEN.getValue())[0]);
+ if(params.containsKey(SignOut.Params.SESSION_TOKEN.getValue())) setSessionToken(params.get(SignOut.Params.SESSION_TOKEN.getValue())[0]);
}
@Override
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SimpleRequest.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SimpleRequest.java
index 297dbdd6d4..a7ae3be80c 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SimpleRequest.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/SimpleRequest.java
@@ -1,9 +1,12 @@
package org.bigbluebutton.api.model.request;
+import org.bigbluebutton.api.model.constraint.ContentTypeConstraint;
import org.bigbluebutton.api.model.shared.Checksum;
+import javax.servlet.http.HttpServletRequest;
import java.util.Map;
+@ContentTypeConstraint
public class SimpleRequest extends RequestWithChecksum {
public enum Params implements RequestParameters {
@@ -16,8 +19,8 @@ public class SimpleRequest extends RequestWithChecksum {
public String getValue() { return value; }
}
- public SimpleRequest(Checksum checksum) {
- super(checksum);
+ public SimpleRequest(Checksum checksum, HttpServletRequest servletRequest) {
+ super(checksum, servletRequest);
}
@Override
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/Stuns.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/Stuns.java
index 0050906634..78b29b232b 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/Stuns.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/request/Stuns.java
@@ -3,9 +3,11 @@ package org.bigbluebutton.api.model.request;
import org.bigbluebutton.api.model.constraint.*;
import org.bigbluebutton.api.service.SessionService;
+import javax.servlet.http.HttpServletRequest;
import java.util.Map;
-public class Stuns implements Request {
+@ContentTypeConstraint
+public class Stuns extends RequestWithSession {
public enum Params implements RequestParameters {
SESSION_TOKEN("sessionToken");
@@ -26,7 +28,10 @@ public class Stuns implements Request {
private SessionService sessionService;
- public Stuns() { sessionService = new SessionService(); }
+ public Stuns(HttpServletRequest servletRequest) {
+ super(servletRequest);
+ sessionService = new SessionService();
+ }
public String getSessionToken() {
return sessionToken;
@@ -38,8 +43,8 @@ public class Stuns implements Request {
@Override
public void populateFromParamsMap(Map params) {
- if(params.containsKey(Enter.Params.SESSION_TOKEN.getValue())) {
- setSessionToken(params.get(Enter.Params.SESSION_TOKEN.getValue())[0]);
+ if(params.containsKey(Stuns.Params.SESSION_TOKEN.getValue())) {
+ setSessionToken(params.get(Stuns.Params.SESSION_TOKEN.getValue())[0]);
sessionService.setSessionToken(sessionToken);
meetingID = sessionService.getMeetingID();
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/Checksum.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/Checksum.java
index bc7674a0af..d6e9a231f4 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/Checksum.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/Checksum.java
@@ -1,8 +1,11 @@
package org.bigbluebutton.api.model.shared;
+import org.bigbluebutton.api.model.constraint.ContentTypeConstraint;
import org.bigbluebutton.api.model.constraint.NotEmpty;
import org.bigbluebutton.api.util.ParamsUtil;
+import javax.servlet.http.HttpServletRequest;
+
public abstract class Checksum {
@NotEmpty(message = "You must provide the API call", groups = ChecksumValidationGroup.class)
@@ -13,9 +16,12 @@ public abstract class Checksum {
protected String queryStringWithoutChecksum;
- public Checksum(String apiCall, String checksum) {
+ protected HttpServletRequest request;
+
+ public Checksum(String apiCall, String checksum, HttpServletRequest request) {
this.apiCall = ParamsUtil.sanitizeString(apiCall);
this.checksum = ParamsUtil.sanitizeString(checksum);
+ this.request = request;
}
public String getApiCall() {
@@ -41,4 +47,12 @@ public abstract class Checksum {
public void setQueryStringWithoutChecksum(String queryStringWithoutChecksum) {
this.queryStringWithoutChecksum = queryStringWithoutChecksum;
}
+
+ public void setRequest(HttpServletRequest request) {
+ this.request = request;
+ }
+
+ public HttpServletRequest getRequest() {
+ return request;
+ }
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/GetChecksum.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/GetChecksum.java
index 5c639fa1e8..952de208c9 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/GetChecksum.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/GetChecksum.java
@@ -3,16 +3,16 @@ package org.bigbluebutton.api.model.shared;
import org.bigbluebutton.api.model.constraint.GetChecksumConstraint;
import org.bigbluebutton.api.util.ParamsUtil;
+import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotEmpty;
@GetChecksumConstraint(groups = ChecksumValidationGroup.class)
public class GetChecksum extends Checksum {
-
- @NotEmpty(message = "You must provide the query string")
+
private String queryString;
- public GetChecksum(String apiCall, String checksum, String queryString) {
- super(apiCall, checksum);
+ public GetChecksum(String apiCall, String checksum, String queryString, HttpServletRequest request) {
+ super(apiCall, checksum, request);
this.queryString = ParamsUtil.sanitizeString(queryString);
removeChecksumFromQueryString();
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/PostChecksum.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/PostChecksum.java
deleted file mode 100755
index d5d72f3756..0000000000
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/shared/PostChecksum.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.bigbluebutton.api.model.shared;
-
-import org.bigbluebutton.api.model.constraint.PostChecksumConstraint;
-import org.bigbluebutton.api.service.ValidationService;
-
-import java.util.Map;
-
-@PostChecksumConstraint(groups = ChecksumValidationGroup.class)
-public class PostChecksum extends Checksum {
-
- Map params;
-
- public PostChecksum(String apiCall, String checksum, Map params) {
- super(apiCall, checksum);
- this.params = params;
- queryStringWithoutChecksum = ValidationService.buildQueryStringFromParamsMap(params);
- }
-
- public Map getParams() { return params; }
-
- public void setParams(Map params) { this.params = params; }
-}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/ContentTypeValidator.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/ContentTypeValidator.java
new file mode 100644
index 0000000000..b54a069b4e
--- /dev/null
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/ContentTypeValidator.java
@@ -0,0 +1,48 @@
+package org.bigbluebutton.api.model.validator;
+
+import org.apache.http.entity.ContentType;
+import org.bigbluebutton.api.model.constraint.ContentTypeConstraint;
+import org.bigbluebutton.api.model.request.Request;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+public class ContentTypeValidator implements ConstraintValidator {
+
+ private static final Logger log = LoggerFactory.getLogger(ContentTypeValidator.class);
+
+ @Override
+ public void initialize(ContentTypeConstraint constraintAnnotation) {}
+
+ @Override
+ public boolean isValid(Request request, ConstraintValidatorContext context) {
+ HttpServletRequest servletRequest = request.getServletRequest();
+ String requestMethod = servletRequest.getMethod();
+ String contentType = servletRequest.getContentType();
+ String contentTypeHeader = servletRequest.getHeader("Content-Type");
+ log.info("Validating {} request with content type {}", requestMethod, contentType);
+
+ boolean requestBodyPresent = servletRequest.getContentLength() > 0;
+ if (requestBodyPresent) {
+ if (contentType == null || contentTypeHeader == null) return false;
+ else {
+ try {
+ ContentType c = ContentType.parse(contentType);
+ String mimeType = c.getMimeType();
+ for (Object o: request.getSupportedContentTypes()) {
+ String supportedContentType = (String) o;
+ if (mimeType.equalsIgnoreCase(supportedContentType)) return true;
+ }
+ } catch (Exception e) {
+ return false;
+ }
+ return false;
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/GetChecksumValidator.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/GetChecksumValidator.java
index 0e439c7263..1395348ba0 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/GetChecksumValidator.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/GetChecksumValidator.java
@@ -1,8 +1,10 @@
package org.bigbluebutton.api.model.validator;
+import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
+import jakarta.ws.rs.core.MediaType;
import org.apache.commons.codec.digest.DigestUtils;
import org.bigbluebutton.api.model.constraint.GetChecksumConstraint;
import org.bigbluebutton.api.model.shared.GetChecksum;
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/PostChecksumValidator.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/PostChecksumValidator.java
deleted file mode 100755
index b34a178197..0000000000
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/model/validator/PostChecksumValidator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.bigbluebutton.api.model.validator;
-
-import org.apache.commons.codec.digest.DigestUtils;
-import org.bigbluebutton.api.model.constraint.PostChecksumConstraint;
-import org.bigbluebutton.api.model.shared.PostChecksum;
-import org.bigbluebutton.api.service.ServiceUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.validation.ConstraintValidator;
-import javax.validation.ConstraintValidatorContext;
-
-public class PostChecksumValidator implements ConstraintValidator {
-
- private static Logger log = LoggerFactory.getLogger(PostChecksumValidator.class);
-
- @Override
- public void initialize(PostChecksumConstraint constraintAnnotation) {}
-
- @Override
- public boolean isValid(PostChecksum checksum, ConstraintValidatorContext context) {
- String securitySalt = ServiceUtils.getValidationService().getSecuritySalt();
-
- if (securitySalt.isEmpty()) {
- log.warn("Security is disabled in this service. Make sure this is intentional.");
- return true;
- }
-
- String queryStringWithoutChecksum = checksum.getQueryStringWithoutChecksum();
- log.info("query string after checksum removed: [{}]", queryStringWithoutChecksum);
-
- if(queryStringWithoutChecksum == null) {
- return false;
- }
-
- String providedChecksum = checksum.getChecksum();
- log.info("CHECKSUM={} length={}", providedChecksum, providedChecksum.length());
-
- if(providedChecksum == null) {
- return false;
- }
-
- String data = checksum.getApiCall() + queryStringWithoutChecksum + securitySalt;
- String createdCheckSum = DigestUtils.sha1Hex(data);
-
- if (createdCheckSum == null || !createdCheckSum.equalsIgnoreCase(providedChecksum)) {
- log.info("checksumError: failed checksum. our checksum: [{}], client: [{}]", createdCheckSum, providedChecksum);
- return false;
- }
-
- return true;
- }
-}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/pub/IPublisherService.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/pub/IPublisherService.java
index 55b7e0d107..27b782a7f3 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/pub/IPublisherService.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/pub/IPublisherService.java
@@ -22,7 +22,7 @@ public interface IPublisherService {
void endMeeting(String meetingId);
void send(String channel, String message);
void registerUser(String meetingID, String internalUserId, String fullname, String role, String externUserID,
- String authToken, String avatarURL, Boolean guest, Boolean excludeFromDashboard,
+ String authToken, String avatarURL, String webcamBackgroundURL, Boolean guest, Boolean excludeFromDashboard,
String enforceLayout, Boolean authed);
void sendKeepAlive(String system, Long bbbWebTimestamp, Long akkaAppsTimestamp);
void sendStunTurnInfo(String meetingId, String internalUserId, Set stuns, Set turns);
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/service/ValidationService.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/service/ValidationService.java
index b26b367adb..48c26ec213 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/service/ValidationService.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/service/ValidationService.java
@@ -4,11 +4,11 @@ import org.bigbluebutton.api.model.request.*;
import org.bigbluebutton.api.model.shared.Checksum;
import org.bigbluebutton.api.model.shared.ChecksumValidationGroup;
import org.bigbluebutton.api.model.shared.GetChecksum;
-import org.bigbluebutton.api.model.shared.PostChecksum;
import org.bigbluebutton.api.util.ParamsUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
@@ -39,12 +39,13 @@ public class ValidationService {
GET_MEETINGS("getMeetings", RequestType.GET),
GET_SESSIONS("getSessions", RequestType.GET),
GUEST_WAIT("guestWait", RequestType.GET),
- ENTER("enter", RequestType.GET),
STUNS("stuns", RequestType.GET),
SIGN_OUT("signOut", RequestType.GET),
LEARNING_DASHBOARD("learningDashboard", RequestType.GET),
GET_JOIN_URL("getJoinUrl", RequestType.GET),
- INSERT_DOCUMENT("insertDocument", RequestType.GET);
+ FEEDBACK("feedback", RequestType.GET),
+ INSERT_DOCUMENT("insertDocument", RequestType.GET),
+ SEND_CHAT_MESSAGE("sendChatMessage", RequestType.GET);
private final String name;
private final RequestType requestType;
@@ -70,11 +71,13 @@ public class ValidationService {
validator = validatorFactory.getValidator();
}
- public Map validate(ApiCall apiCall, Map params, String queryString) {
+ public Map validate(ApiCall apiCall, HttpServletRequest servletRequest) {
+ String queryString = servletRequest.getQueryString();
+ Map params = servletRequest.getParameterMap();
log.info("Validating {} request with query string {}", apiCall.getName(), queryString);
params = sanitizeParams(params);
- Request request = initializeRequest(apiCall, params, queryString);
+ Request request = initializeRequest(apiCall, params, queryString, servletRequest);
Map violations = new HashMap<>();
if(request == null) {
@@ -101,7 +104,7 @@ public class ValidationService {
}
}
- private Request initializeRequest(ApiCall apiCall, Map params, String queryString) {
+ private Request initializeRequest(ApiCall apiCall, Map params, String queryString, HttpServletRequest servletRequest) {
Request request = null;
Checksum checksum;
@@ -110,55 +113,24 @@ public class ValidationService {
checksumValue = params.get("checksum")[0];
}
- if(queryString == null || queryString.isEmpty()) {
- queryString = buildQueryStringFromParamsMap(params);
- }
-
- switch(apiCall.requestType) {
- case GET:
- checksum = new GetChecksum(apiCall.getName(), checksumValue, queryString);
- switch(apiCall) {
- case CREATE:
- request = new CreateMeeting(checksum);
- break;
- case JOIN:
- request = new JoinMeeting(checksum);
- break;
- case MEETING_RUNNING:
- request = new MeetingRunning(checksum);
- break;
- case END:
- request = new EndMeeting(checksum);
- break;
- case GET_MEETING_INFO:
- request = new MeetingInfo(checksum);
- break;
- case GET_MEETINGS:
- case GET_SESSIONS:
- request = new SimpleRequest(checksum);
- break;
- case INSERT_DOCUMENT:
- request = new InsertDocument(checksum);
- break;
- case GUEST_WAIT:
- request = new GuestWait();
- break;
- case ENTER:
- request = new Enter();
- break;
- case STUNS:
- request = new Stuns();
- break;
- case SIGN_OUT:
- request = new SignOut();
- break;
- case LEARNING_DASHBOARD:
- request = new LearningDashboard();
- break;
- case GET_JOIN_URL:
- request = new GetJoinUrl();
- break;
- }
+ if (Objects.requireNonNull(apiCall.requestType) == RequestType.GET) {
+ checksum = new GetChecksum(apiCall.getName(), checksumValue, queryString, servletRequest);
+ request = switch (apiCall) {
+ case CREATE -> new CreateMeeting(checksum, servletRequest);
+ case JOIN -> new JoinMeeting(checksum, servletRequest);
+ case MEETING_RUNNING -> new MeetingRunning(checksum, servletRequest);
+ case END -> new EndMeeting(checksum, servletRequest);
+ case GET_MEETING_INFO -> new MeetingInfo(checksum, servletRequest);
+ case GET_MEETINGS, GET_SESSIONS -> new SimpleRequest(checksum, servletRequest);
+ case INSERT_DOCUMENT -> new InsertDocument(checksum, servletRequest);
+ case SEND_CHAT_MESSAGE -> new SendChatMessage(checksum, servletRequest);
+ case GUEST_WAIT -> new GuestWait(servletRequest);
+ case STUNS -> new Stuns(servletRequest);
+ case SIGN_OUT -> new SignOut(servletRequest);
+ case LEARNING_DASHBOARD -> new LearningDashboard(servletRequest);
+ case GET_JOIN_URL -> new GetJoinUrl(servletRequest);
+ case FEEDBACK -> new Feedback(servletRequest);
+ };
}
return request;
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/util/ResponseBuilder.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/util/ResponseBuilder.java
index e7a7a7a32c..11e5904c1c 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api/util/ResponseBuilder.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/util/ResponseBuilder.java
@@ -52,7 +52,7 @@ public class ResponseBuilder {
return new Date(timestamp).toString();
}
- public String buildMeetingVersion(String apiVersion, String bbbVersion, String graphqlWebsocketUrl, String returnCode) {
+ public String buildMeetingVersion(String apiVersion, String bbbVersion, String graphqlWebsocketUrl, String graphqlApiUrl, String returnCode) {
StringWriter xmlText = new StringWriter();
Map data = new HashMap();
@@ -61,6 +61,7 @@ public class ResponseBuilder {
data.put("apiVersion", apiVersion);
data.put("bbbVersion", bbbVersion);
data.put("graphqlWebsocketUrl", graphqlWebsocketUrl);
+ data.put("graphqlApiUrl", graphqlApiUrl);
processData(getTemplate("api-version.ftlx"), data, xmlText);
@@ -242,6 +243,19 @@ public class ResponseBuilder {
return ftl;
}
+ public String buildSendChatMessageResponse(String message, String returnCode) {
+
+ StringWriter xmlText = new StringWriter();
+
+ Map data = new HashMap();
+ data.put("returnCode", returnCode);
+ data.put("message", message);
+
+ processData(getTemplate("send-chat-message.ftlx"), data, xmlText);
+
+ return xmlText.toString();
+ }
+
private void processData(Template template, Map data, StringWriter out) {
try {
template.process(data, out);
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java b/bbb-common-web/src/main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java
index dd16fc56fc..3c8bf97d4e 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java
@@ -11,6 +11,7 @@ import org.bigbluebutton.api.messaging.converters.messages.EndMeetingMessage;
import org.bigbluebutton.api.messaging.converters.messages.PublishedRecordingMessage;
import org.bigbluebutton.api.messaging.converters.messages.UnpublishedRecordingMessage;
import org.bigbluebutton.api.messaging.converters.messages.DeletedRecordingMessage;
+import org.bigbluebutton.api.messaging.messages.ChatMessageFromApi;
import org.bigbluebutton.presentation.messages.IDocConversionMsg;
public interface IBbbWebApiGWApp {
@@ -24,10 +25,26 @@ public interface IBbbWebApiGWApp {
Integer meetingCameraCap,
Integer userCameraCap,
Integer maxPinnedCameras,
- String moderatorPass, String viewerPass, String learningDashboardAccessToken, Long createTime,
- String createDate, Boolean isBreakout, Integer sequence, Boolean freejoin, Map metadata,
- String guestPolicy, Boolean authenticatedGuest, Boolean allowPromoteGuestToModerator, String meetingLayout, String welcomeMsgTemplate, String welcomeMsg, String modOnlyMessage,
- String dialNumber, Integer maxUsers, Integer maxUserConcurrentAccesses,
+ String moderatorPass,
+ String viewerPass,
+ String learningDashboardAccessToken,
+ Long createTime,
+ String createDate,
+ Boolean isBreakout,
+ Integer sequence,
+ Boolean freejoin,
+ Map metadata,
+ String guestPolicy,
+ Boolean authenticatedGuest,
+ Boolean allowPromoteGuestToModerator,
+ Long waitingGuestUsersTimeout,
+ String meetingLayout,
+ String welcomeMsgTemplate,
+ String welcomeMsg,
+ String welcomeMsgForModerators,
+ String dialNumber,
+ Integer maxUsers,
+ Integer maxUserConcurrentAccesses,
Integer meetingExpireIfNoUserJoinedInMinutes,
Integer meetingExpireWhenLastUserLeftInMinutes,
Integer userInactivityInspectTimerInMinutes,
@@ -44,6 +61,7 @@ public interface IBbbWebApiGWApp {
String loginUrl,
String logoutUrl,
String customLogoURL,
+ String customDarkLogoURL,
String bannerText,
String bannerColor,
ArrayList groups,
@@ -54,10 +72,9 @@ public interface IBbbWebApiGWApp {
String overrideClientSettings);
void registerUser(String meetingID, String internalUserId, String fullname, String role,
- String externUserID, String authToken, String sessionToken, String avatarURL,
+ String externUserID, String authToken, String sessionToken, String avatarURL, String webcamBackgroundURL,
Boolean guest, Boolean authed, String guestStatus, Boolean excludeFromDashboard,
- String enforceLayout, Map customParameters);
- void guestWaitingLeft(String meetingID, String internalUserId);
+ String enforceLayout, Map userMetadata);
void destroyMeeting(DestroyMeetingMessage msg);
void endMeeting(EndMeetingMessage msg);
@@ -66,4 +83,5 @@ public interface IBbbWebApiGWApp {
void unpublishedRecording(UnpublishedRecordingMessage msg);
void deletedRecording(DeletedRecordingMessage msg);
void sendDocConversionMsg(IDocConversionMsg msg);
+ void sendChatMessage(ChatMessageFromApi msg);
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api2/IMeetingService.java b/bbb-common-web/src/main/java/org/bigbluebutton/api2/IMeetingService.java
index 15817fbb0f..def05fcff9 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api2/IMeetingService.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api2/IMeetingService.java
@@ -15,7 +15,7 @@ public interface IMeetingService {
void addUserSession(String token, UserSession user);
void registerUser(String meetingID, String internalUserId,
String fullname, String role, String externUserID,
- String authToken, String avatarURL, Boolean guest, Boolean authed);
+ String authToken, String avatarURL, String webcamBackgroundURL, Boolean guest, Boolean authed);
UserSession getUserSession(String token);
UserSession removeUserSession(String token);
void purgeRegisteredUsers();
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api2/domain/Meeting2.java b/bbb-common-web/src/main/java/org/bigbluebutton/api2/domain/Meeting2.java
index 9811b8ac39..fa5c562523 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api2/domain/Meeting2.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api2/domain/Meeting2.java
@@ -17,6 +17,7 @@ public class Meeting2 {
public final boolean forciblyEnded;
public final String logoutUrl;
public final String defaultAvatarURL;
+ public final String defaultWebcamBackgroundURL;
public final Map metadata;
public final List breakoutRooms;
@@ -30,6 +31,7 @@ public class Meeting2 {
boolean forciblyEnded,
String logoutUrl,
String defaultAvatarURL,
+ String defaultWebcamBackgroundURL,
Map metadata,
List breakoutRooms) {
this.props = props;
@@ -42,6 +44,7 @@ public class Meeting2 {
this.forciblyEnded = forciblyEnded;
this.logoutUrl = logoutUrl;
this.defaultAvatarURL = defaultAvatarURL;
+ this.defaultWebcamBackgroundURL = defaultWebcamBackgroundURL;
this.metadata = metadata;
this.breakoutRooms = breakoutRooms;
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api2/domain/WelcomeProp2.java b/bbb-common-web/src/main/java/org/bigbluebutton/api2/domain/WelcomeProp2.java
index fd7b6884cd..3bd44cded7 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/api2/domain/WelcomeProp2.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/api2/domain/WelcomeProp2.java
@@ -1,15 +1,13 @@
package org.bigbluebutton.api2.domain;
public class WelcomeProp2 {
- public final String welcomeMsgTemplate;
public final String welcomeMsg;
- public final String modOnlyMessage;
+ public final String welcomeMsgForModerators;
public WelcomeProp2(String welcomeMsgTemplate,
String welcomeMsg,
- String modOnlyMessage) {
- this.welcomeMsgTemplate = welcomeMsgTemplate;
+ String welcomeMsgForModerators) {
this.welcomeMsg = welcomeMsg;
- this.modOnlyMessage = modOnlyMessage;
+ this.welcomeMsgForModerators = welcomeMsgForModerators;
}
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/FileTypeConstants.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/FileTypeConstants.java
index 832db0120b..dcba94307e 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/FileTypeConstants.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/FileTypeConstants.java
@@ -32,12 +32,14 @@ public final class FileTypeConstants {
public static final String TXT = "txt";
public static final String ODS = "ods";
public static final String ODP = "odp";
+ public static final String ODG = "odg";
public static final String AVI = "avi";
public static final String MPG = "mpg";
public static final String MP3 = "mp3";
public static final String PDF = "pdf";
public static final String JPG = "jpg";
public static final String JPEG = "jpeg";
+ public static final String WEBP = "webp";
public static final String PNG = "png";
public static final String SVG = "svg";
private FileTypeConstants() {} // Prevent instantiation
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/MimeTypeUtils.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/MimeTypeUtils.java
index d6bd667890..82198c334b 100644
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/MimeTypeUtils.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/MimeTypeUtils.java
@@ -19,12 +19,17 @@ public class MimeTypeUtils {
private static final String RTF = "application/rtf";
private static final String TXT = "text/plain";
private static final String ODS = "application/vnd.oasis.opendocument.spreadsheet";
+ private static final String ODG = "application/vnd.oasis.opendocument.graphics";
private static final String ODP = "application/vnd.oasis.opendocument.presentation";
private static final String PDF = "application/pdf";
private static final String JPEG = "image/jpeg";
private static final String PNG = "image/png";
private static final String SVG = "image/svg+xml";
+ private static final String WEBP = "image/webp";
+ // If the following mime-types are changed, please, make sure to also change:
+ // bigbluebutton-html5/private/config/settings.yml: L827
+ // docs/docs/development/api.md: L1222
private static final HashMap> EXTENSIONS_MIME = new HashMap>(16) {
{
put(FileTypeConstants.DOC, Arrays.asList(DOC, DOCX, TIKA_MSOFFICE, TIKA_MSOFFICE_X));
@@ -34,6 +39,7 @@ public class MimeTypeUtils {
put(FileTypeConstants.PPTX, Arrays.asList(PPT, PPTX, TIKA_MSOFFICE, TIKA_MSOFFICE_X));
put(FileTypeConstants.XLSX, Arrays.asList(XLS, XLSX, TIKA_MSOFFICE, TIKA_MSOFFICE_X));
put(FileTypeConstants.ODT, Arrays.asList(ODT));
+ put(FileTypeConstants.ODG, Arrays.asList(ODG));
put(FileTypeConstants.RTF, Arrays.asList(RTF));
put(FileTypeConstants.TXT, Arrays.asList(TXT));
put(FileTypeConstants.ODS, Arrays.asList(ODS));
@@ -43,6 +49,7 @@ public class MimeTypeUtils {
put(FileTypeConstants.JPEG, Arrays.asList(JPEG));
put(FileTypeConstants.PNG, Arrays.asList(PNG));
put(FileTypeConstants.SVG, Arrays.asList(SVG));
+ put(FileTypeConstants.WEBP, Arrays.asList(WEBP));
}
};
@@ -71,8 +78,9 @@ public class MimeTypeUtils {
public List getValidMimeTypes() {
List validMimeTypes = Arrays.asList(XLS, XLSX,
- DOC, DOCX, PPT, PPTX, ODT, RTF, TXT, ODS, ODP,
- PDF, JPEG, PNG, SVG, TIKA_MSOFFICE, TIKA_MSOFFICE_X
+ DOC, DOCX, PPT, PPTX, ODT, RTF, TXT, ODS, ODP, ODG,
+ PDF, JPEG, PNG, SVG, TIKA_MSOFFICE, TIKA_MSOFFICE_X,
+ WEBP
);
return validMimeTypes;
}
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/PresentationUrlDownloadService.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/PresentationUrlDownloadService.java
index 6fe5e1014f..9add5bb657 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/PresentationUrlDownloadService.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/PresentationUrlDownloadService.java
@@ -94,6 +94,7 @@ public class PresentationUrlDownloadService {
}, 5, TimeUnit.SECONDS);
}
+ // A negative presentationSlide indicates the entire presentation deck should be used.
private void extractPage(final String sourceMeetingId, final String presentationId,
final Integer presentationSlide, final String destinationMeetingId) {
@@ -146,7 +147,7 @@ public class PresentationUrlDownloadService {
+ newFilename;
File newPresentation = new File(newFilePath);
- if (sourcePresentationFile.getName().toLowerCase().endsWith("pdf")) {
+ if (sourcePresentationFile.getName().toLowerCase().endsWith("pdf") && presentationSlide >= 0) {
pageExtractor.extractPage(sourcePresentationFile, new File(
newFilePath), presentationSlide);
} else {
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/SupportedDocumentFilter.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/SupportedDocumentFilter.java
index f566a99839..85ceed5fea 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/SupportedDocumentFilter.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/SupportedDocumentFilter.java
@@ -40,7 +40,7 @@ public class SupportedDocumentFilter {
/* Get file extension - Perhaps try to rely on a more accurate method than an extension type ? */
String extension = FilenameUtils.getExtension(presentationFile.getName());
- boolean supported = SupportedFileTypes.isFileSupported(extension);
+ boolean supported = SupportedFileTypes.isPresentationMimeTypeValid(presentationFile, extension);
notifyProgressListener(supported, pres);
if (supported) {
log.info("Received supported file {}", pres.getUploadedFile().getAbsolutePath());
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/SupportedFileTypes.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/SupportedFileTypes.java
index 4e68969451..f15017ed67 100755
--- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/SupportedFileTypes.java
+++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/SupportedFileTypes.java
@@ -38,37 +38,21 @@ public final class SupportedFileTypes {
private static Logger log = LoggerFactory.getLogger(SupportedFileTypes.class);
private static MimeTypeUtils mimeTypeUtils = new MimeTypeUtils();
-
- private static final List SUPPORTED_FILE_LIST = Collections.unmodifiableList(new ArrayList(15) {
- {
- // Add all the supported files
- add(XLS); add(XLSX); add(DOC); add(DOCX); add(PPT); add(PPTX);
- add(ODT); add(RTF); add(TXT); add(ODS); add(ODP); add(PDF);
- add(JPG); add(JPEG); add(PNG);
- }
- });
private static final List OFFICE_FILE_LIST = Collections.unmodifiableList(new ArrayList(11) {
{
// Add all Offile file types
add(XLS); add(XLSX); add(DOC); add(DOCX); add(PPT); add(PPTX);
- add(ODT); add(RTF); add(TXT); add(ODS); add(ODP);
+ add(ODT); add(RTF); add(TXT); add(ODS); add(ODP); add(ODG);
}
});
private static final List IMAGE_FILE_LIST = Collections.unmodifiableList(new ArrayList(3) {
{
// Add all image file types
- add(JPEG); add(JPG); add(PNG);
+ add(JPEG); add(JPG); add(PNG); add(WEBP); add(SVG);
}
});
-
- /*
- * Returns if the file with extension is supported.
- */
- public static boolean isFileSupported(String fileExtension) {
- return SUPPORTED_FILE_LIST.contains(fileExtension.toLowerCase());
- }
/*
* Returns if the Office file is supported.
diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/web/services/WaitingGuestCleanupTimerTask.java b/bbb-common-web/src/main/java/org/bigbluebutton/web/services/WaitingGuestCleanupTimerTask.java
deleted file mode 100755
index bb94828387..0000000000
--- a/bbb-common-web/src/main/java/org/bigbluebutton/web/services/WaitingGuestCleanupTimerTask.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
-* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
-*
-* Copyright (c) 2020 BigBlueButton Inc. and by respective authors (see below).
-*
-* This program is free software; you can redistribute it and/or modify it under the
-* terms of the GNU Lesser General Public License as published by the Free Software
-* Foundation; either version 3.0 of the License, or (at your option) any later
-* version.
-*
-* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
-* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public License along
-* with BigBlueButton; if not, see .
-*
-*/
-
-package org.bigbluebutton.web.services;
-
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-import org.bigbluebutton.api.MeetingService;
-
-public class WaitingGuestCleanupTimerTask {
-
- private MeetingService service;
- private ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(1);
- private long runEvery = 15000;
-
- public void setMeetingService(MeetingService svc) {
- this.service = svc;
- }
-
- public void start() {
- scheduledThreadPool.scheduleWithFixedDelay(new CleanupTask(), 60000, runEvery, TimeUnit.MILLISECONDS);
- }
-
- public void stop() {
- scheduledThreadPool.shutdownNow();
- }
-
- public void setRunEvery(long v) {
- runEvery = v;
- }
-
- private class CleanupTask implements Runnable {
- @Override
- public void run() {
- service.purgeWaitingGuestUsers();
- }
- }
-}
diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/BbbWebApiGWApp.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/BbbWebApiGWApp.scala
index 1330c33862..a21444e9e8 100755
--- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/BbbWebApiGWApp.scala
+++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/BbbWebApiGWApp.scala
@@ -5,6 +5,7 @@ import org.apache.pekko.actor.ActorSystem
import org.apache.pekko.event.Logging
import org.bigbluebutton.api.domain.{BreakoutRoomsParams, Group, LockSettingsParams}
import org.bigbluebutton.api.messaging.converters.messages._
+import org.bigbluebutton.api.messaging.messages.ChatMessageFromApi
import org.bigbluebutton.api2.bus._
import org.bigbluebutton.api2.endpoint.redis.WebRedisSubscriberActor
import org.bigbluebutton.common2.redis.MessageSender
@@ -130,9 +131,13 @@ class BbbWebApiGWApp(
createTime: java.lang.Long, createDate: String, isBreakout: java.lang.Boolean,
sequence: java.lang.Integer,
freeJoin: java.lang.Boolean,
- metadata: java.util.Map[String, String], guestPolicy: String, authenticatedGuest: java.lang.Boolean, allowPromoteGuestToModerator: java.lang.Boolean,
- meetingLayout: String,
- welcomeMsgTemplate: String, welcomeMsg: String, modOnlyMessage: String,
+ metadata: java.util.Map[String, String],
+ guestPolicy: String,
+ authenticatedGuest: java.lang.Boolean,
+ allowPromoteGuestToModerator: java.lang.Boolean,
+ waitingGuestUsersTimeout: java.lang.Long,
+ meetingLayout: String,
+ welcomeMsgTemplate: String, welcomeMsg: String, welcomeMsgForModerators: String,
dialNumber: String,
maxUsers: java.lang.Integer,
maxUserConcurrentAccesses: java.lang.Integer,
@@ -152,6 +157,7 @@ class BbbWebApiGWApp(
loginUrl: String,
logoutUrl: String,
customLogoURL: String,
+ customDarkLogoURL: String,
bannerText: String,
bannerColor: String,
groups: java.util.ArrayList[Group],
@@ -207,8 +213,7 @@ class BbbWebApiGWApp(
captureSlidesFilename = breakoutParams.captureSlidesFilename,
)
- val welcomeProp = WelcomeProp(welcomeMsgTemplate = welcomeMsgTemplate, welcomeMsg = welcomeMsg,
- modOnlyMessage = modOnlyMessage)
+ val welcomeProp = WelcomeProp(welcomeMsg = welcomeMsg, welcomeMsgForModerators = welcomeMsgForModerators)
val voiceProp = VoiceProp(telVoice = voiceBridge, voiceConf = voiceBridge, dialNumber = dialNumber, muteOnStart = muteOnStart.booleanValue())
val usersProp = UsersProp(
maxUsers = maxUsers.intValue(),
@@ -218,7 +223,8 @@ class BbbWebApiGWApp(
guestPolicy = guestPolicy, meetingLayout = meetingLayout, allowModsToUnmuteUsers = allowModsToUnmuteUsers.booleanValue(),
allowModsToEjectCameras = allowModsToEjectCameras.booleanValue(),
authenticatedGuest = authenticatedGuest.booleanValue(),
- allowPromoteGuestToModerator = allowPromoteGuestToModerator.booleanValue()
+ allowPromoteGuestToModerator = allowPromoteGuestToModerator.booleanValue(),
+ waitingGuestUsersTimeout = waitingGuestUsersTimeout.longValue()
)
val metadataProp = MetadataProp(mapAsScalaMap(metadata).toMap)
@@ -242,6 +248,7 @@ class BbbWebApiGWApp(
},
logoutUrl,
customLogoURL,
+ customDarkLogoURL,
bannerText match {
case t: String => t
case _ => ""
@@ -279,9 +286,9 @@ class BbbWebApiGWApp(
def registerUser(meetingId: String, intUserId: String, name: String,
role: String, extUserId: String, authToken: String, sessionToken: String,
- avatarURL: String, guest: java.lang.Boolean, authed: java.lang.Boolean,
+ avatarURL: String, webcamBackgroundURL: String, guest: java.lang.Boolean, authed: java.lang.Boolean,
guestStatus: String, excludeFromDashboard: java.lang.Boolean,
- enforceLayout: String, customParameters: java.util.Map[String, String]): Unit = {
+ enforceLayout: String, userMetadata: java.util.Map[String, String]): Unit = {
// meetingManagerActorRef ! new RegisterUser(meetingId = meetingId, intUserId = intUserId, name = name,
// role = role, extUserId = extUserId, authToken = authToken, avatarURL = avatarURL,
@@ -289,19 +296,14 @@ class BbbWebApiGWApp(
val regUser = new RegisterUser(meetingId = meetingId, intUserId = intUserId, name = name,
role = role, extUserId = extUserId, authToken = authToken, sessionToken = sessionToken,
- avatarURL = avatarURL, guest = guest.booleanValue(), authed = authed.booleanValue(),
+ avatarURL = avatarURL, webcamBackgroundURL = webcamBackgroundURL, guest = guest.booleanValue(), authed = authed.booleanValue(),
guestStatus = guestStatus, excludeFromDashboard = excludeFromDashboard, enforceLayout = enforceLayout,
- customParameters = (customParameters).asScala.toMap)
+ userMetadata = (userMetadata).asScala.toMap)
val event = MsgBuilder.buildRegisterUserRequestToAkkaApps(regUser)
msgToAkkaAppsEventBus.publish(MsgToAkkaApps(toAkkaAppsChannel, event))
}
- def guestWaitingLeft(meetingId: String, intUserId: String): Unit = {
- val event = MsgBuilder.buildGuestWaitingLeftMsg(meetingId, intUserId)
- msgToAkkaAppsEventBus.publish(MsgToAkkaApps(toAkkaAppsChannel, event))
- }
-
def destroyMeeting(msg: DestroyMeetingMessage): Unit = {
val event = MsgBuilder.buildDestroyMeetingSysCmdMsg(msg)
msgToAkkaAppsEventBus.publish(MsgToAkkaApps(toAkkaAppsChannel, event))
@@ -381,6 +383,13 @@ class BbbWebApiGWApp(
}
}
+ def sendChatMessage(msg: ChatMessageFromApi): Unit ={
+ if (msg.isInstanceOf[ChatMessageFromApi]){
+ val event = MsgBuilder.buildSendChatMessageFromApi(msg.asInstanceOf[ChatMessageFromApi])
+ msgToAkkaAppsEventBus.publish(MsgToAkkaApps(toAkkaAppsChannel, event))
+ }
+ }
+
/*** Caption API ***/
def generateSingleUseCaptionToken(recordId: String, caption: String, expirySeconds: Long): String = {
redisStorage.generateSingleUseCaptionToken(recordId, caption, expirySeconds)
diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilder.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilder.scala
index 2464c57fa1..5b672e48eb 100755
--- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilder.scala
+++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilder.scala
@@ -1,6 +1,7 @@
package org.bigbluebutton.api2
import org.bigbluebutton.api.messaging.converters.messages._
+import org.bigbluebutton.api.messaging.messages.ChatMessageFromApi
import org.bigbluebutton.api2.meeting.RegisterUser
import org.bigbluebutton.common2.domain.{ DefaultProps, PageVO, PresentationPageConvertedVO, PresentationVO }
import org.bigbluebutton.common2.msgs._
@@ -49,21 +50,12 @@ object MsgBuilder {
val header = BbbCoreHeaderWithMeetingId(RegisterUserReqMsg.NAME, msg.meetingId)
val body = RegisterUserReqMsgBody(meetingId = msg.meetingId, intUserId = msg.intUserId,
name = msg.name, role = msg.role, extUserId = msg.extUserId, authToken = msg.authToken, sessionToken = msg.sessionToken,
- avatarURL = msg.avatarURL, guest = msg.guest, authed = msg.authed, guestStatus = msg.guestStatus,
- excludeFromDashboard = msg.excludeFromDashboard, enforceLayout = msg.enforceLayout, customParameters = msg.customParameters)
+ avatarURL = msg.avatarURL, webcamBackgroundURL = msg.webcamBackgroundURL, guest = msg.guest, authed = msg.authed, guestStatus = msg.guestStatus,
+ excludeFromDashboard = msg.excludeFromDashboard, enforceLayout = msg.enforceLayout, userMetadata = msg.userMetadata)
val req = RegisterUserReqMsg(header, body)
BbbCommonEnvCoreMsg(envelope, req)
}
- def buildGuestWaitingLeftMsg(meetingId: String, userId: String): BbbCommonEnvCoreMsg = {
- val routing = collection.immutable.HashMap("sender" -> "bbb-web")
- val envelope = BbbCoreEnvelope(GuestWaitingLeftMsg.NAME, routing)
- val header = BbbClientMsgHeader(GuestWaitingLeftMsg.NAME, meetingId, "not-used")
- val body = GuestWaitingLeftMsgBody(userId)
- val req = GuestWaitingLeftMsg(header, body)
- BbbCommonEnvCoreMsg(envelope, req)
- }
-
def buildCheckAlivePingSysMsg(system: String, bbbWebTimestamp: Long, akkaAppsTimestamp: Long): BbbCommonEnvCoreMsg = {
val routing = collection.immutable.HashMap("sender" -> "bbb-web")
val envelope = BbbCoreEnvelope(CheckAlivePingSysMsg.NAME, routing)
@@ -359,6 +351,19 @@ object MsgBuilder {
BbbCommonEnvCoreMsg(envelope, req)
}
+ def buildSendChatMessageFromApi(msg: ChatMessageFromApi): BbbCommonEnvCoreMsg = {
+ val routing = collection.immutable.HashMap("sender" -> "bbb-web")
+ val envelope = BbbCoreEnvelope(SendGroupChatMessageFromApiSysPubMsg.NAME, routing)
+ val header = BbbClientMsgHeader(SendGroupChatMessageFromApiSysPubMsg.NAME, msg.meetingId, "not-used")
+
+ val body = SendGroupChatMessageFromApiSysPubMsgBody(
+ userName = msg.name, message = msg.message
+ )
+
+ val req = SendGroupChatMessageFromApiSysPubMsg(header, body)
+ BbbCommonEnvCoreMsg(envelope, req)
+ }
+
def buildPresentationUploadedFileTimedoutErrorSysMsg(msg: UploadFileTimedoutMessage): BbbCommonEnvCoreMsg = {
val routing = collection.immutable.HashMap("sender" -> "bbb-web")
val envelope = BbbCoreEnvelope(PresentationUploadedFileTimeoutErrorSysPubMsg.NAME, routing)
diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala
index e62435f351..1017fd84c2 100755
--- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala
+++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala
@@ -66,8 +66,6 @@ class ReceivedJsonMsgHdlrActor(val msgFromAkkaAppsEventBus: MsgFromAkkaAppsEvent
route[MeetingDestroyedEvtMsg](envelope, jsonNode)
case CheckAlivePongSysMsg.NAME =>
route[CheckAlivePongSysMsg](envelope, jsonNode)
- case UserEmojiChangedEvtMsg.NAME =>
- route[UserEmojiChangedEvtMsg](envelope, jsonNode)
case PresenterUnassignedEvtMsg.NAME =>
route[PresenterUnassignedEvtMsg](envelope, jsonNode)
case PresenterAssignedEvtMsg.NAME =>
diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/domain/User2.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/domain/User2.scala
index 4d9e029e5b..8aca491e62 100755
--- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/domain/User2.scala
+++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/domain/User2.scala
@@ -3,7 +3,7 @@ package org.bigbluebutton.api2.domain
case class CallerId(name: String, number: String)
case class VoiceUser(id: String, callerId: CallerId, status: String, vid: String, wid: String, callingWith: String)
-case class User2(intId: String, extId: String, name: String, role: String, avatarURL: String,
+case class User2(intId: String, extId: String, name: String, role: String, avatarURL: String, webcamBackgroundURL: String,
guest: Boolean, waitingForAcceptance: Boolean, status: Vector[String],
streams: Set[String], customData: UserCustomData, voiceUser: VoiceUser, webcamStreams: Vector[String])
@@ -39,7 +39,7 @@ class Users {
}
case class RegisteredUser2(meetingId: String, intId: String, name: String, role: String,
- extId: String, authToken: String, avatarURL: String,
+ extId: String, authToken: String, avatarURL: String, webcamBackgroundURL: String,
guest: Boolean, authed: Boolean)
object RegisteredUsers {
diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/MeetingsManagerActor.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/MeetingsManagerActor.scala
index 2b17a8006d..a883b2f2df 100755
--- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/MeetingsManagerActor.scala
+++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/MeetingsManagerActor.scala
@@ -16,9 +16,9 @@ case class CreateBreakoutRoomMsg(meetingId: String, parentMeetingId: String,
case class AddUserSession(token: String, session: UserSession)
case class RegisterUser(meetingId: String, intUserId: String, name: String, role: String,
- extUserId: String, authToken: String, sessionToken: String, avatarURL: String,
+ extUserId: String, authToken: String, sessionToken: String, avatarURL: String, webcamBackgroundURL: String,
guest: Boolean, authed: Boolean, guestStatus: String, excludeFromDashboard: Boolean,
- enforceLayout: String, customParameters: Map[String, String])
+ enforceLayout: String, userMetadata: Map[String, String])
case class CreateMeetingMsg(defaultProps: DefaultProps)
diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala
index 9603058fc8..66f1501b41 100755
--- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala
+++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala
@@ -24,7 +24,6 @@ class OldMeetingMsgHdlrActor(val olgMsgGW: OldMessageReceivedGW)
case m: MeetingEndedEvtMsg => handleMeetingEndedEvtMsg(m)
case m: MeetingDestroyedEvtMsg => handleMeetingDestroyedEvtMsg(m)
case m: CheckAlivePongSysMsg => handleCheckAlivePongSysMsg(m)
- case m: UserEmojiChangedEvtMsg => handleUserEmojiChangedEvtMsg(m)
case m: PresenterUnassignedEvtMsg => handlePresenterUnassignedEvtMsg(m)
case m: PresenterAssignedEvtMsg => handlePresenterAssignedEvtMsg(m)
case m: UserJoinedMeetingEvtMsg => handleUserJoinedMeetingEvtMsg(m)
@@ -143,7 +142,7 @@ class OldMeetingMsgHdlrActor(val olgMsgGW: OldMessageReceivedGW)
def handleUserJoinedMeetingEvtMsg(msg: UserJoinedMeetingEvtMsg): Unit = {
olgMsgGW.handle(new UserJoined(msg.header.meetingId, msg.body.intId,
- msg.body.extId, msg.body.name, msg.body.role, msg.body.locked, msg.body.avatar,
+ msg.body.extId, msg.body.name, msg.body.role, msg.body.locked, msg.body.avatar, msg.body.webcamBackground,
msg.body.guest, msg.body.guestStatus, msg.body.clientType))
}
@@ -155,10 +154,6 @@ class OldMeetingMsgHdlrActor(val olgMsgGW: OldMessageReceivedGW)
olgMsgGW.handle(new UserStatusChanged(msg.header.meetingId, msg.body.presenterId, "presenter", "true"))
}
- def handleUserEmojiChangedEvtMsg(msg: UserEmojiChangedEvtMsg): Unit = {
- //listener.handle(new UserStatusChanged(meetingId, userid, status, value))
- }
-
def handleUserLeftMeetingEvtMsg(msg: UserLeftMeetingEvtMsg): Unit = {
olgMsgGW.handle(new UserLeft(msg.header.meetingId, msg.body.intId))
}
diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/ToAkkaAppsSendersTrait.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/ToAkkaAppsSendersTrait.scala
index 7f11d06304..5b32026ac4 100755
--- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/ToAkkaAppsSendersTrait.scala
+++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/ToAkkaAppsSendersTrait.scala
@@ -28,9 +28,9 @@ trait ToAkkaAppsSendersTrait extends SystemConfiguration {
val header = BbbCoreHeaderWithMeetingId(RegisterUserReqMsg.NAME, msg.meetingId)
val body = RegisterUserReqMsgBody(meetingId = msg.meetingId, intUserId = msg.intUserId,
name = msg.name, role = msg.role, extUserId = msg.extUserId, authToken = msg.authToken,
- sessionToken = msg.sessionToken, avatarURL = msg.avatarURL, guest = msg.guest, authed = msg.authed,
+ sessionToken = msg.sessionToken, avatarURL = msg.avatarURL, webcamBackgroundURL = msg.webcamBackgroundURL, guest = msg.guest, authed = msg.authed,
guestStatus = msg.guestStatus, excludeFromDashboard = msg.excludeFromDashboard,
- enforceLayout = msg.enforceLayout, customParameters = msg.customParameters)
+ enforceLayout = msg.enforceLayout, userMetadata = msg.userMetadata)
val req = RegisterUserReqMsg(header, body)
val message = BbbCommonEnvCoreMsg(envelope, req)
sendToBus(message)
diff --git a/bbb-common-web/src/test/resources/send-chat-message.ftlx b/bbb-common-web/src/test/resources/send-chat-message.ftlx
new file mode 100644
index 0000000000..657b7f0c10
--- /dev/null
+++ b/bbb-common-web/src/test/resources/send-chat-message.ftlx
@@ -0,0 +1,8 @@
+<#ftl output_format="XML" auto_esc=true>
+<#compress>
+
+ <#-- Where code is a 'SUCCESS' or 'FAILED' String -->
+ ${returnCode}
+ ${message}
+
+#compress>
\ No newline at end of file
diff --git a/bbb-export-annotations/package-lock.json b/bbb-export-annotations/package-lock.json
index 454bc9af42..8da20a3338 100644
--- a/bbb-export-annotations/package-lock.json
+++ b/bbb-export-annotations/package-lock.json
@@ -1,7 +1,7 @@
{
"name": "bbb-export-annotations",
"version": "2.0",
- "lockfileVersion": 2,
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
@@ -9,7 +9,7 @@
"version": "2.0",
"dependencies": {
"@svgdotjs/svg.js": "^3.2.0",
- "axios": "^1.6.5",
+ "axios": "^1.7.4",
"form-data": "^4.0.0",
"opentype.js": "^1.3.4",
"perfect-freehand": "^1.0.16",
@@ -27,16 +27,43 @@
"npm": ">=9.5.0"
}
},
- "node_modules/@eslint/eslintrc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
- "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
+ "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.2",
- "globals": "^13.15.0",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -45,151 +72,188 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/@eslint/eslintrc/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/@eslint/js": {
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/@eslint/eslintrc/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@humanwhocodes/config-array": {
- "version": "0.9.5",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
- "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==",
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "deprecated": "Use @eslint/config-array instead",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.4"
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
+ "minimatch": "^3.0.5"
},
"engines": {
"node": ">=10.10.0"
}
},
- "node_modules/@humanwhocodes/config-array/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
+ "license": "Apache-2.0",
"engines": {
- "node": ">=6.0"
+ "node": ">=12.22"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
}
},
- "node_modules/@humanwhocodes/config-array/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "node_modules/@node-redis/bloom": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@node-redis/bloom/-/bloom-1.0.1.tgz",
- "integrity": "sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw==",
- "peerDependencies": {
- "@node-redis/client": "^1.0.0"
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "node_modules/@node-redis/client": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@node-redis/client/-/client-1.0.3.tgz",
- "integrity": "sha512-IXNgOG99PHGL3NxN3/e8J8MuX+H08I+OMNmheGmZBXngE0IntaCQwwrd7NzmiHA+zH3SKHiJ+6k3P7t7XYknMw==",
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "cluster-key-slot": "1.1.0",
- "generic-pool": "3.8.2",
- "redis-parser": "3.0.0",
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@redis/bloom": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz",
+ "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@redis/client": "^1.0.0"
+ }
+ },
+ "node_modules/@redis/client": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.0.tgz",
+ "integrity": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==",
+ "license": "MIT",
+ "dependencies": {
+ "cluster-key-slot": "1.1.2",
+ "generic-pool": "3.9.0",
"yallist": "4.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=14"
}
},
- "node_modules/@node-redis/graph": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@node-redis/graph/-/graph-1.0.0.tgz",
- "integrity": "sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g==",
+ "node_modules/@redis/graph": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz",
+ "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==",
+ "license": "MIT",
"peerDependencies": {
- "@node-redis/client": "^1.0.0"
+ "@redis/client": "^1.0.0"
}
},
- "node_modules/@node-redis/json": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@node-redis/json/-/json-1.0.2.tgz",
- "integrity": "sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g==",
+ "node_modules/@redis/json": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz",
+ "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==",
+ "license": "MIT",
"peerDependencies": {
- "@node-redis/client": "^1.0.0"
+ "@redis/client": "^1.0.0"
}
},
- "node_modules/@node-redis/search": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@node-redis/search/-/search-1.0.2.tgz",
- "integrity": "sha512-gWhEeji+kTAvzZeguUNJdMSZNH2c5dv3Bci8Nn2f7VGuf6IvvwuZDSBOuOlirLVgayVuWzAG7EhwaZWK1VDnWQ==",
+ "node_modules/@redis/search": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz",
+ "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==",
+ "license": "MIT",
"peerDependencies": {
- "@node-redis/client": "^1.0.0"
+ "@redis/client": "^1.0.0"
}
},
- "node_modules/@node-redis/time-series": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@node-redis/time-series/-/time-series-1.0.1.tgz",
- "integrity": "sha512-+nTn6EewVj3GlUXPuD3dgheWqo219jTxlo6R+pg24OeVvFHx9aFGGiyOgj3vBPhWUdRZ0xMcujXV5ki4fbLyMw==",
+ "node_modules/@redis/time-series": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz",
+ "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==",
+ "license": "MIT",
"peerDependencies": {
- "@node-redis/client": "^1.0.0"
+ "@redis/client": "^1.0.0"
}
},
"node_modules/@svgdotjs/svg.js": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.0.tgz",
- "integrity": "sha512-Tr8p+QVP7y+QT1GBlq1Tt57IvedVH8zCPoYxdHLX0Oof3a/PqnC/tXAkVufv1JQJfsDHlH/UrjcDfgxSofqSNA==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.4.tgz",
+ "integrity": "sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==",
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Fuzzyma"
}
},
"node_modules/@swc/helpers": {
- "version": "0.4.36",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz",
- "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==",
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz",
+ "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==",
+ "license": "Apache-2.0",
"dependencies": {
- "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14",
"tslib": "^2.4.0"
}
},
- "node_modules/acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true,
+ "license": "ISC"
+ },
+ "node_modules/acorn": {
+ "version": "8.12.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -202,6 +266,7 @@
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
@@ -211,6 +276,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -227,6 +293,7 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -236,6 +303,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -250,17 +318,20 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "dev": true,
+ "license": "Python-2.0"
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
},
"node_modules/axios": {
- "version": "1.6.8",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
- "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
+ "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
+ "license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
@@ -271,7 +342,8 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/base64-js": {
"version": "1.5.1",
@@ -290,13 +362,15 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -306,6 +380,7 @@
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz",
"integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==",
+ "license": "MIT",
"dependencies": {
"base64-js": "^1.1.2"
}
@@ -315,6 +390,7 @@
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -324,6 +400,7 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -339,14 +416,16 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
"integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "license": "MIT",
"engines": {
"node": ">=0.8"
}
},
"node_modules/cluster-key-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
- "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz",
+ "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==",
+ "license": "Apache-2.0",
"engines": {
"node": ">=0.10.0"
}
@@ -356,6 +435,7 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -367,12 +447,14 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -384,13 +466,15 @@
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -401,23 +485,35 @@
}
},
"node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz",
+ "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "^2.1.1"
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
@@ -425,13 +521,15 @@
"node_modules/dfa": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz",
- "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q=="
+ "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==",
+ "license": "MIT"
},
"node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -444,6 +542,7 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -452,46 +551,50 @@
}
},
"node_modules/eslint": {
- "version": "8.20.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz",
- "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint/eslintrc": "^1.3.0",
- "@humanwhocodes/config-array": "^0.9.2",
- "ajv": "^6.10.0",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.2",
- "esquery": "^1.4.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^6.0.1",
- "globals": "^13.15.0",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "regexpp": "^3.2.0",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
+ "text-table": "^0.2.0"
},
"bin": {
"eslint": "bin/eslint.js"
@@ -508,6 +611,7 @@
"resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
"integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=0.10.0"
},
@@ -516,96 +620,59 @@
}
},
"node_modules/eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "engines": {
- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5"
- }
- },
- "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true,
- "engines": {
- "node": ">=10"
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/eslint/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
},
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/espree": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz",
- "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.7.1",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -618,6 +685,7 @@
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -630,6 +698,7 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
@@ -639,6 +708,7 @@
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -646,25 +716,39 @@
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "license": "MIT"
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"flat-cache": "^3.0.4"
},
@@ -672,13 +756,32 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "flatted": "^3.1.0",
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
},
"engines": {
@@ -686,21 +789,23 @@
}
},
"node_modules/flatted": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz",
- "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==",
- "dev": true
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "version": "1.15.8",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.8.tgz",
+ "integrity": "sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4.0"
},
@@ -711,11 +816,12 @@
}
},
"node_modules/fontkit": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.2.tgz",
- "integrity": "sha512-jc4k5Yr8iov8QfS6u8w2CnHWVmbOGtdBtOXMze5Y+QD966Rx6PEVWXSEGwXlsDlKtu1G12cJjcsybnqhSk/+LA==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.4.tgz",
+ "integrity": "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==",
+ "license": "MIT",
"dependencies": {
- "@swc/helpers": "^0.4.2",
+ "@swc/helpers": "^0.5.12",
"brotli": "^1.3.2",
"clone": "^2.1.2",
"dfa": "^1.2.0",
@@ -730,6 +836,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -743,18 +850,14 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "node_modules/functional-red-black-tree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/generic-pool": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.8.2.tgz",
- "integrity": "sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg==",
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz",
+ "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==",
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -763,7 +866,9 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -784,6 +889,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -792,10 +898,11 @@
}
},
"node_modules/globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -806,11 +913,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -819,6 +934,7 @@
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -827,10 +943,11 @@
}
},
"node_modules/ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -839,6 +956,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
"integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
+ "license": "MIT",
"dependencies": {
"queue": "6.0.2"
},
@@ -854,6 +972,7 @@
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -870,6 +989,7 @@
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.8.19"
}
@@ -878,7 +998,9 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dev": true,
+ "license": "ISC",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -887,13 +1009,15 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -903,6 +1027,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -910,17 +1035,29 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -928,25 +1065,35 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/legacy-swc-helpers": {
- "name": "@swc/helpers",
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
- "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "tslib": "^2.4.0"
+ "json-buffer": "3.0.1"
}
},
"node_modules/levn": {
@@ -954,6 +1101,7 @@
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -962,25 +1110,44 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "license": "MIT"
},
"node_modules/mime-db": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
- "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
- "version": "2.1.34",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
- "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
"dependencies": {
- "mime-db": "1.51.0"
+ "mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
@@ -991,6 +1158,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -999,20 +1167,23 @@
}
},
"node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "license": "MIT"
},
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/needle": {
"version": "2.9.1",
"resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
"integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==",
+ "license": "MIT",
"dependencies": {
"debug": "^3.2.6",
"iconv-lite": "^0.4.4",
@@ -1025,11 +1196,21 @@
"node": ">= 4.4.x"
}
},
+ "node_modules/needle/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"wrappy": "1"
}
@@ -1038,6 +1219,7 @@
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz",
"integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==",
+ "license": "MIT",
"dependencies": {
"string.prototype.codepointat": "^0.2.1",
"tiny-inflate": "^1.0.3"
@@ -1050,32 +1232,67 @@
}
},
"node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "word-wrap": "^1.2.5"
},
"engines": {
"node": ">= 0.8.0"
}
},
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/pako": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="
+ "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
+ "license": "MIT"
},
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -1083,11 +1300,22 @@
"node": ">=6"
}
},
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -1097,20 +1325,23 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/perfect-freehand": {
- "version": "1.0.16",
- "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.0.16.tgz",
- "integrity": "sha512-D4+avUeR8CHSl2vaPbPYX/dNpSMRYO3VOFp7qSSc+LRkSgzQbLATVnXosy7VxtsSHEh1C5t8K8sfmo0zCVnfWQ=="
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.2.2.tgz",
+ "integrity": "sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==",
+ "license": "MIT"
},
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8.0"
}
@@ -1119,6 +1350,7 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz",
"integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==",
+ "license": "MIT",
"dependencies": {
"lodash.merge": "^4.6.2",
"needle": "^2.5.2",
@@ -1128,13 +1360,15 @@
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
},
"node_modules/punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -1143,52 +1377,47 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
"integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "license": "MIT",
"dependencies": {
"inherits": "~2.0.3"
}
},
- "node_modules/redis": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/redis/-/redis-4.0.3.tgz",
- "integrity": "sha512-SJMRXvgiQUYN0HaWwWv002J5ZgkhYXOlbLomzcrL3kP42yRNZ8Jx5nvLYhVpgmf10xcDpanFOxxJkphu2eyIFQ==",
- "dependencies": {
- "@node-redis/bloom": "1.0.1",
- "@node-redis/client": "1.0.3",
- "@node-redis/graph": "1.0.0",
- "@node-redis/json": "1.0.2",
- "@node-redis/search": "1.0.2",
- "@node-redis/time-series": "1.0.1"
- }
- },
- "node_modules/redis-errors": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
- "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/redis-parser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
- "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=",
- "dependencies": {
- "redis-errors": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/redis": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/redis/-/redis-4.7.0.tgz",
+ "integrity": "sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==",
+ "license": "MIT",
+ "workspaces": [
+ "./packages/*"
+ ],
+ "dependencies": {
+ "@redis/bloom": "1.2.0",
+ "@redis/client": "1.6.0",
+ "@redis/graph": "1.1.1",
+ "@redis/json": "1.0.7",
+ "@redis/search": "1.2.0",
+ "@redis/time-series": "1.1.0"
}
},
"node_modules/resolve-from": {
@@ -1196,20 +1425,35 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/restructure": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.1.tgz",
- "integrity": "sha512-6neDpI/yE9eogQo22qmWwKIA9wFPRyYjQleDEh6zaNAf2ZPqLJYUvNBJBWEWNoBlCeQMQkvIOe2YI/K2GOag+g=="
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.2.tgz",
+ "integrity": "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==",
+ "license": "MIT"
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
},
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
+ "license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
@@ -1220,29 +1464,57 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
},
"node_modules/sanitize-filename": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
"integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
+ "license": "WTFPL OR ISC",
"dependencies": {
"truncate-utf8-bytes": "^1.0.0"
}
},
"node_modules/sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
+ "license": "ISC"
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -1255,6 +1527,7 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -1262,7 +1535,8 @@
"node_modules/stream-parser": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
- "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=",
+ "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==",
+ "license": "MIT",
"dependencies": {
"debug": "2"
}
@@ -1271,6 +1545,7 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -1278,18 +1553,21 @@
"node_modules/stream-parser/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
},
"node_modules/string.prototype.codepointat": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz",
- "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
+ "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==",
+ "license": "MIT"
},
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -1302,6 +1580,7 @@
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -1314,6 +1593,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -1325,6 +1605,7 @@
"version": "0.1.19",
"resolved": "https://registry.npmjs.org/svgdom/-/svgdom-0.1.19.tgz",
"integrity": "sha512-gBvlZ74RECaG9VyPrj9OdakOarEKKvaXh5NVkbx9oWfAo4XnQehk75b14iOW2UjFHyZThczZ1NrPV9rDrecOVg==",
+ "license": "MIT",
"dependencies": {
"fontkit": "^2.0.2",
"image-size": "^1.0.2",
@@ -1339,31 +1620,36 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tiny-inflate": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
- "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="
+ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
+ "license": "MIT"
},
"node_modules/truncate-utf8-bytes": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
- "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
+ "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
+ "license": "WTFPL",
"dependencies": {
"utf8-byte-length": "^1.0.1"
}
},
"node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+ "license": "0BSD"
},
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
"integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -1376,6 +1662,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -1387,6 +1674,7 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz",
"integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==",
+ "license": "MIT",
"dependencies": {
"base64-js": "^1.3.0",
"unicode-trie": "^2.0.0"
@@ -1396,6 +1684,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz",
"integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==",
+ "license": "MIT",
"dependencies": {
"pako": "^0.2.5",
"tiny-inflate": "^1.0.0"
@@ -1406,26 +1695,23 @@
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
}
},
"node_modules/utf8-byte-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
- "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E="
- },
- "node_modules/v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz",
+ "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==",
+ "license": "(WTFPL OR MIT)"
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -1437,10 +1723,11 @@
}
},
"node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -1449,1110 +1736,27 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- },
- "dependencies": {
- "@eslint/eslintrc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
- "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "license": "ISC"
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.3.2",
- "globals": "^13.15.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
},
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
- },
- "@humanwhocodes/config-array": {
- "version": "0.9.5",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
- "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==",
- "dev": true,
- "requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true
- },
- "@node-redis/bloom": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@node-redis/bloom/-/bloom-1.0.1.tgz",
- "integrity": "sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw==",
- "requires": {}
- },
- "@node-redis/client": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@node-redis/client/-/client-1.0.3.tgz",
- "integrity": "sha512-IXNgOG99PHGL3NxN3/e8J8MuX+H08I+OMNmheGmZBXngE0IntaCQwwrd7NzmiHA+zH3SKHiJ+6k3P7t7XYknMw==",
- "requires": {
- "cluster-key-slot": "1.1.0",
- "generic-pool": "3.8.2",
- "redis-parser": "3.0.0",
- "yallist": "4.0.0"
- }
- },
- "@node-redis/graph": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@node-redis/graph/-/graph-1.0.0.tgz",
- "integrity": "sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g==",
- "requires": {}
- },
- "@node-redis/json": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@node-redis/json/-/json-1.0.2.tgz",
- "integrity": "sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g==",
- "requires": {}
- },
- "@node-redis/search": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@node-redis/search/-/search-1.0.2.tgz",
- "integrity": "sha512-gWhEeji+kTAvzZeguUNJdMSZNH2c5dv3Bci8Nn2f7VGuf6IvvwuZDSBOuOlirLVgayVuWzAG7EhwaZWK1VDnWQ==",
- "requires": {}
- },
- "@node-redis/time-series": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@node-redis/time-series/-/time-series-1.0.1.tgz",
- "integrity": "sha512-+nTn6EewVj3GlUXPuD3dgheWqo219jTxlo6R+pg24OeVvFHx9aFGGiyOgj3vBPhWUdRZ0xMcujXV5ki4fbLyMw==",
- "requires": {}
- },
- "@svgdotjs/svg.js": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.0.tgz",
- "integrity": "sha512-Tr8p+QVP7y+QT1GBlq1Tt57IvedVH8zCPoYxdHLX0Oof3a/PqnC/tXAkVufv1JQJfsDHlH/UrjcDfgxSofqSNA=="
- },
- "@swc/helpers": {
- "version": "0.4.36",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz",
- "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==",
- "requires": {
- "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14",
- "tslib": "^2.4.0"
- }
- },
- "acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
- "dev": true
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "requires": {}
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "axios": {
- "version": "1.6.8",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
- "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
- "requires": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "brotli": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz",
- "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==",
- "requires": {
- "base64-js": "^1.1.2"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "clone": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
- "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
- },
- "cluster-key-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
- "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw=="
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "dfa": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz",
- "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q=="
- },
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true
- },
- "eslint": {
- "version": "8.20.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz",
- "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==",
- "dev": true,
- "requires": {
- "@eslint/eslintrc": "^1.3.0",
- "@humanwhocodes/config-array": "^0.9.2",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.2",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^6.0.1",
- "globals": "^13.15.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "regexpp": "^3.2.0",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "eslint-config-google": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz",
- "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==",
- "dev": true,
- "requires": {}
- },
- "eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true
- }
- }
- },
- "eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true
- },
- "espree": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz",
- "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
- "dev": true,
- "requires": {
- "acorn": "^8.7.1",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
- }
- },
- "esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
- "dev": true,
- "requires": {
- "estraverse": "^5.1.0"
- }
- },
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "requires": {
- "estraverse": "^5.2.0"
- }
- },
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "requires": {
- "flat-cache": "^3.0.4"
- }
- },
- "flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dev": true,
- "requires": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- }
- },
- "flatted": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz",
- "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==",
- "dev": true
- },
- "follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
- },
- "fontkit": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.2.tgz",
- "integrity": "sha512-jc4k5Yr8iov8QfS6u8w2CnHWVmbOGtdBtOXMze5Y+QD966Rx6PEVWXSEGwXlsDlKtu1G12cJjcsybnqhSk/+LA==",
- "requires": {
- "@swc/helpers": "^0.4.2",
- "brotli": "^1.3.2",
- "clone": "^2.1.2",
- "dfa": "^1.2.0",
- "fast-deep-equal": "^3.1.3",
- "restructure": "^3.0.0",
- "tiny-inflate": "^1.0.3",
- "unicode-properties": "^1.4.0",
- "unicode-trie": "^2.0.0"
- }
- },
- "form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "functional-red-black-tree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
- "dev": true
- },
- "generic-pool": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.8.2.tgz",
- "integrity": "sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg=="
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
- "dev": true
- },
- "image-size": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
- "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
- "requires": {
- "queue": "6.0.2"
- }
- },
- "import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dev": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
- },
- "legacy-swc-helpers": {
- "version": "npm:@swc/helpers@0.4.14",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
- "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
- "requires": {
- "tslib": "^2.4.0"
- }
- },
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
- },
- "mime-db": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
- "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
- },
- "mime-types": {
- "version": "2.1.34",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
- "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
- "requires": {
- "mime-db": "1.51.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "needle": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
- "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==",
- "requires": {
- "debug": "^3.2.6",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "opentype.js": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz",
- "integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==",
- "requires": {
- "string.prototype.codepointat": "^0.2.1",
- "tiny-inflate": "^1.0.3"
- }
- },
- "optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "requires": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- }
- },
- "pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="
- },
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
- },
- "perfect-freehand": {
- "version": "1.0.16",
- "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.0.16.tgz",
- "integrity": "sha512-D4+avUeR8CHSl2vaPbPYX/dNpSMRYO3VOFp7qSSc+LRkSgzQbLATVnXosy7VxtsSHEh1C5t8K8sfmo0zCVnfWQ=="
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true
- },
- "probe-image-size": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz",
- "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==",
- "requires": {
- "lodash.merge": "^4.6.2",
- "needle": "^2.5.2",
- "stream-parser": "~0.3.1"
- }
- },
- "proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
- },
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "dev": true
- },
- "queue": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
- "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
- "requires": {
- "inherits": "~2.0.3"
- }
- },
- "redis": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/redis/-/redis-4.0.3.tgz",
- "integrity": "sha512-SJMRXvgiQUYN0HaWwWv002J5ZgkhYXOlbLomzcrL3kP42yRNZ8Jx5nvLYhVpgmf10xcDpanFOxxJkphu2eyIFQ==",
- "requires": {
- "@node-redis/bloom": "1.0.1",
- "@node-redis/client": "1.0.3",
- "@node-redis/graph": "1.0.0",
- "@node-redis/json": "1.0.2",
- "@node-redis/search": "1.0.2",
- "@node-redis/time-series": "1.0.1"
- }
- },
- "redis-errors": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
- "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60="
- },
- "redis-parser": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
- "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=",
- "requires": {
- "redis-errors": "^1.0.0"
- }
- },
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
- },
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- },
- "restructure": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.1.tgz",
- "integrity": "sha512-6neDpI/yE9eogQo22qmWwKIA9wFPRyYjQleDEh6zaNAf2ZPqLJYUvNBJBWEWNoBlCeQMQkvIOe2YI/K2GOag+g=="
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "sanitize-filename": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
- "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
- "requires": {
- "truncate-utf8-bytes": "^1.0.0"
- }
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "stream-parser": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
- "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=",
- "requires": {
- "debug": "2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
- "string.prototype.codepointat": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz",
- "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "svgdom": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/svgdom/-/svgdom-0.1.19.tgz",
- "integrity": "sha512-gBvlZ74RECaG9VyPrj9OdakOarEKKvaXh5NVkbx9oWfAo4XnQehk75b14iOW2UjFHyZThczZ1NrPV9rDrecOVg==",
- "requires": {
- "fontkit": "^2.0.2",
- "image-size": "^1.0.2",
- "sax": "^1.2.4"
- }
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "tiny-inflate": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
- "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="
- },
- "truncate-utf8-bytes": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
- "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
- "requires": {
- "utf8-byte-length": "^1.0.1"
- }
- },
- "tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true
- },
- "unicode-properties": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz",
- "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==",
- "requires": {
- "base64-js": "^1.3.0",
- "unicode-trie": "^2.0.0"
- }
- },
- "unicode-trie": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz",
- "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==",
- "requires": {
- "pako": "^0.2.5",
- "tiny-inflate": "^1.0.0"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "utf8-byte-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
- "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E="
- },
- "v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}
}
}
diff --git a/bbb-export-annotations/package.json b/bbb-export-annotations/package.json
index 90f35bf9b2..5108cd1b1b 100644
--- a/bbb-export-annotations/package.json
+++ b/bbb-export-annotations/package.json
@@ -9,7 +9,7 @@
},
"dependencies": {
"@svgdotjs/svg.js": "^3.2.0",
- "axios": "^1.6.5",
+ "axios": "^1.7.4",
"form-data": "^4.0.0",
"opentype.js": "^1.3.4",
"perfect-freehand": "^1.0.16",
diff --git a/bbb-graphql-actions/deploy.sh b/bbb-graphql-actions/deploy.sh
index 0190ba913c..1f18a5ef7a 100755
--- a/bbb-graphql-actions/deploy.sh
+++ b/bbb-graphql-actions/deploy.sh
@@ -1,9 +1,4 @@
#!/usr/bin/env bash
-if [ "$EUID" -ne 0 ]; then
- echo "Please run this script as root ( or with sudo )" ;
- exit 1;
-fi;
-
cd "$(dirname "$0")"
@@ -11,15 +6,15 @@ for var in "$@"
do
if [[ $var == --reset ]] ; then
echo "Performing a full reset..."
- rm -rf node_modules
+ sudo rm -rf node_modules
fi
done
if [ ! -d ./node_modules ] ; then
- npm ci --no-progress
+ sudo npm ci --no-progress
fi
-npm run build
+sudo npm run build
# handle renaming circa dec 2023
if [[ -d /usr/local/bigbluebutton/bbb-graphql-actions-adapter-server ]] ; then
@@ -29,7 +24,7 @@ if [[ -d /usr/local/bigbluebutton/bbb-graphql-actions-adapter-server ]] ; then
sudo rm -rf /usr/local/bigbluebutton/bbb-graphql-actions-adapter-server
fi
-mv -f dist/index.js dist/bbb-graphql-actions.js
+sudo mv -f dist/index.js dist/bbb-graphql-actions.js
sudo cp -rf dist/* /usr/local/bigbluebutton/bbb-graphql-actions
sudo systemctl restart bbb-graphql-actions
echo ''
diff --git a/bbb-graphql-actions/package-lock.json b/bbb-graphql-actions/package-lock.json
index 38e0a22ffd..1362b70603 100644
--- a/bbb-graphql-actions/package-lock.json
+++ b/bbb-graphql-actions/package-lock.json
@@ -12,7 +12,7 @@
"@types/express": "^4.17.18",
"@types/node": "^20.7.0",
"@types/redis": "^4.0.11",
- "axios": "^1.6.0",
+ "axios": "^1.7.4",
"express": "^4.19.2",
"redis": "^4.6.10"
},
@@ -27,6 +27,7 @@
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
},
@@ -35,25 +36,28 @@
}
},
"node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
- "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -63,14 +67,16 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz",
"integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==",
+ "license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@redis/client": {
- "version": "1.5.11",
- "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.5.11.tgz",
- "integrity": "sha512-cV7yHcOAtNQ5x/yQl7Yw1xf53kO0FNDTdDU6bFIMbW6ljB7U7ns0YRM+QIkpoqTAt6zK5k9Fq0QWlUbLcq9AvA==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.0.tgz",
+ "integrity": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==",
+ "license": "MIT",
"dependencies": {
"cluster-key-slot": "1.1.2",
"generic-pool": "3.9.0",
@@ -81,82 +87,93 @@
}
},
"node_modules/@redis/graph": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.0.tgz",
- "integrity": "sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz",
+ "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==",
+ "license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@redis/json": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.6.tgz",
- "integrity": "sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz",
+ "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==",
+ "license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@redis/search": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.1.5.tgz",
- "integrity": "sha512-hPP8w7GfGsbtYEJdn4n7nXa6xt6hVZnnDktKW4ArMaFQ/m/aR7eFvsLQmG/mn1Upq99btPJk+F27IQ2dYpCoUg==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz",
+ "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==",
+ "license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@redis/time-series": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.5.tgz",
- "integrity": "sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz",
+ "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==",
+ "license": "MIT",
"peerDependencies": {
"@redis/client": "^1.0.0"
}
},
"node_modules/@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+ "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@tsconfig/node12": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@tsconfig/node14": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@tsconfig/node16": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
"integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/body-parser": {
- "version": "1.19.3",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz",
- "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==",
+ "version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "license": "MIT",
"dependencies": {
"@types/connect": "*",
"@types/node": "*"
}
},
"node_modules/@types/connect": {
- "version": "3.4.36",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz",
- "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==",
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/express": {
- "version": "4.17.18",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz",
- "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==",
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
+ "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "license": "MIT",
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.33",
@@ -165,9 +182,10 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.17.37",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz",
- "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==",
+ "version": "4.19.5",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
+ "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -176,68 +194,74 @@
}
},
"node_modules/@types/http-errors": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz",
- "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg=="
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "license": "MIT"
},
"node_modules/@types/mime": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz",
- "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg=="
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "license": "MIT"
},
"node_modules/@types/node": {
- "version": "20.7.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.0.tgz",
- "integrity": "sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg=="
+ "version": "20.16.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz",
+ "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.19.2"
+ }
},
"node_modules/@types/qs": {
- "version": "6.9.8",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz",
- "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg=="
+ "version": "6.9.15",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
+ "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==",
+ "license": "MIT"
},
"node_modules/@types/range-parser": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz",
- "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA=="
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "license": "MIT"
},
"node_modules/@types/redis": {
"version": "4.0.11",
"resolved": "https://registry.npmjs.org/@types/redis/-/redis-4.0.11.tgz",
"integrity": "sha512-bI+gth8La8Wg/QCR1+V1fhrL9+LZUSWfcqpOj2Kc80ZQ4ffbdL173vQd5wovmoV9i071FU9oP2g6etLuEwb6Rg==",
"deprecated": "This is a stub types definition. redis provides its own type definitions, so you do not need this installed.",
+ "license": "MIT",
"dependencies": {
"redis": "*"
}
},
"node_modules/@types/send": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz",
- "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==",
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "license": "MIT",
"dependencies": {
"@types/mime": "^1",
"@types/node": "*"
}
},
"node_modules/@types/serve-static": {
- "version": "1.15.3",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz",
- "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==",
+ "version": "1.15.7",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "license": "MIT",
"dependencies": {
"@types/http-errors": "*",
- "@types/mime": "*",
- "@types/node": "*"
+ "@types/node": "*",
+ "@types/send": "*"
}
},
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "dev": true
- },
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "license": "MIT",
"dependencies": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
@@ -247,10 +271,11 @@
}
},
"node_modules/acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+ "version": "8.12.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
"dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -259,10 +284,14 @@
}
},
"node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "version": "8.3.3",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz",
+ "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
"engines": {
"node": ">=0.4.0"
}
@@ -272,6 +301,7 @@
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -284,24 +314,28 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+ "license": "MIT"
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
},
"node_modules/axios": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz",
- "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==",
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
+ "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
+ "license": "MIT",
"dependencies": {
- "follow-redirects": "^1.15.0",
+ "follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -310,21 +344,27 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/body-parser": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
+ "license": "MIT",
"dependencies": {
"bytes": "3.1.2",
"content-type": "~1.0.5",
@@ -349,18 +389,20 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -370,6 +412,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -378,6 +421,7 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
@@ -393,16 +437,11 @@
}
},
"node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
+ "license": "MIT",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -415,6 +454,9 @@
"engines": {
"node": ">= 8.10.0"
},
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
"optionalDependencies": {
"fsevents": "~2.3.2"
}
@@ -423,6 +465,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz",
"integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==",
+ "license": "Apache-2.0",
"engines": {
"node": ">=0.10.0"
}
@@ -431,6 +474,7 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -442,12 +486,14 @@
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "license": "MIT",
"dependencies": {
"safe-buffer": "5.2.1"
},
@@ -459,6 +505,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -467,6 +514,7 @@
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -474,18 +522,21 @@
"node_modules/cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "license": "MIT"
},
"node_modules/create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -494,6 +545,7 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
@@ -510,6 +562,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
@@ -518,6 +571,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -526,6 +580,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
@@ -536,6 +591,7 @@
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.3.1"
}
@@ -543,12 +599,14 @@
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "license": "MIT"
},
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -557,6 +615,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "license": "MIT",
"dependencies": {
"get-intrinsic": "^1.2.4"
},
@@ -568,6 +627,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
}
@@ -575,12 +635,14 @@
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "license": "MIT"
},
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -589,6 +651,7 @@
"version": "4.19.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
+ "license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
@@ -627,10 +690,11 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -642,6 +706,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "license": "MIT",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
@@ -656,15 +721,16 @@
}
},
"node_modules/follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "version": "1.15.8",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.8.tgz",
+ "integrity": "sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4.0"
},
@@ -678,6 +744,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -691,6 +758,7 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -699,6 +767,7 @@
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -709,6 +778,7 @@
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -721,6 +791,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -729,6 +800,7 @@
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz",
"integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==",
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -737,6 +809,7 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
@@ -756,6 +829,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -767,6 +841,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "license": "MIT",
"dependencies": {
"get-intrinsic": "^1.1.3"
},
@@ -779,6 +854,7 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -787,6 +863,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0"
},
@@ -798,6 +875,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -809,6 +887,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -820,6 +899,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -831,6 +911,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "license": "MIT",
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
@@ -846,6 +927,7 @@
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -857,17 +939,20 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
"integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "license": "MIT",
"engines": {
"node": ">= 0.10"
}
@@ -877,6 +962,7 @@
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -889,6 +975,7 @@
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -898,6 +985,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -910,32 +998,23 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
},
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -943,12 +1022,14 @@
"node_modules/merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
+ "license": "MIT"
},
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -957,6 +1038,7 @@
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "license": "MIT",
"bin": {
"mime": "cli.js"
},
@@ -968,6 +1050,7 @@
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -976,6 +1059,7 @@
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
@@ -988,6 +1072,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -998,24 +1083,27 @@
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
},
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/nodemon": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz",
- "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz",
+ "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chokidar": "^3.5.2",
- "debug": "^3.2.7",
+ "debug": "^4",
"ignore-by-default": "^1.0.1",
"minimatch": "^3.1.2",
"pstree.remy": "^1.1.8",
@@ -1037,48 +1125,48 @@
}
},
"node_modules/nodemon/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz",
+ "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ms": "^2.1.1"
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
"node_modules/nodemon/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "node_modules/nopt": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true,
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "*"
- }
+ "license": "MIT"
},
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-inspect": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
- "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -1087,6 +1175,7 @@
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "license": "MIT",
"dependencies": {
"ee-first": "1.1.1"
},
@@ -1098,6 +1187,7 @@
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -1105,13 +1195,15 @@
"node_modules/path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
+ "license": "MIT"
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.6"
},
@@ -1123,6 +1215,7 @@
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "license": "MIT",
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
@@ -1134,18 +1227,21 @@
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
},
"node_modules/pstree.remy": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
"integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/qs": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.0.4"
},
@@ -1160,6 +1256,7 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -1168,6 +1265,7 @@
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "license": "MIT",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -1183,6 +1281,7 @@
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -1191,16 +1290,20 @@
}
},
"node_modules/redis": {
- "version": "4.6.10",
- "resolved": "https://registry.npmjs.org/redis/-/redis-4.6.10.tgz",
- "integrity": "sha512-mmbyhuKgDiJ5TWUhiKhBssz+mjsuSI/lSZNPI9QvZOYzWvYGejtb+W3RlDDf8LD6Bdl5/mZeG8O1feUGhXTxEg==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/redis/-/redis-4.7.0.tgz",
+ "integrity": "sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==",
+ "license": "MIT",
+ "workspaces": [
+ "./packages/*"
+ ],
"dependencies": {
"@redis/bloom": "1.2.0",
- "@redis/client": "1.5.11",
- "@redis/graph": "1.1.0",
- "@redis/json": "1.0.6",
- "@redis/search": "1.1.5",
- "@redis/time-series": "1.0.5"
+ "@redis/client": "1.6.0",
+ "@redis/graph": "1.1.1",
+ "@redis/json": "1.0.7",
+ "@redis/search": "1.2.0",
+ "@redis/time-series": "1.1.0"
}
},
"node_modules/safe-buffer": {
@@ -1220,21 +1323,21 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
},
"node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -1246,6 +1349,7 @@
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "license": "MIT",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
@@ -1268,12 +1372,14 @@
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
},
"node_modules/serve-static": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "license": "MIT",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
@@ -1288,6 +1394,7 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -1303,12 +1410,14 @@
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "license": "ISC"
},
"node_modules/side-channel": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"es-errors": "^1.3.0",
@@ -1327,6 +1436,7 @@
"resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
"integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"semver": "^7.5.3"
},
@@ -1338,6 +1448,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -1347,6 +1458,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -1359,6 +1471,7 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -1370,27 +1483,27 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "license": "MIT",
"engines": {
"node": ">=0.6"
}
},
"node_modules/touch": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
- "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
+ "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
"dev": true,
- "dependencies": {
- "nopt": "~1.0.10"
- },
+ "license": "ISC",
"bin": {
"nodetouch": "bin/nodetouch.js"
}
},
"node_modules/ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+ "version": "10.9.2",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
@@ -1433,6 +1546,7 @@
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "license": "MIT",
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
@@ -1442,10 +1556,11 @@
}
},
"node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
+ "version": "5.5.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
+ "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -1458,12 +1573,20 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
"integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "license": "MIT"
},
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -1472,6 +1595,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "license": "MIT",
"engines": {
"node": ">= 0.4.0"
}
@@ -1480,12 +1604,14 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -1493,13 +1619,15 @@
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "license": "ISC"
},
"node_modules/yn": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
diff --git a/bbb-graphql-actions/package.json b/bbb-graphql-actions/package.json
index 2b01a5d782..d7001d0339 100644
--- a/bbb-graphql-actions/package.json
+++ b/bbb-graphql-actions/package.json
@@ -1,5 +1,6 @@
{
"name": "bbb-graphql-actions",
+ "homepage": "/html5client/",
"version": "0.0.1",
"description": "A server component designed to interface between Hasura GraphQL actions and BigBlueButton ecosystem.",
"main": "index.ts",
@@ -27,7 +28,7 @@
"@types/express": "^4.17.18",
"@types/node": "^20.7.0",
"@types/redis": "^4.0.11",
- "axios": "^1.6.0",
+ "axios": "^1.7.4",
"express": "^4.19.2",
"redis": "^4.6.10"
},
diff --git a/bbb-graphql-actions/src/actions/allUsersClearReaction.ts b/bbb-graphql-actions/src/actions/allUsersClearReaction.ts
index bda7dc25f1..16c6fc3ff4 100644
--- a/bbb-graphql-actions/src/actions/allUsersClearReaction.ts
+++ b/bbb-graphql-actions/src/actions/allUsersClearReaction.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
const eventName = `ClearAllUsersReactionCmdMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/breakoutRoomCreate.ts b/bbb-graphql-actions/src/actions/breakoutRoomCreate.ts
index 8294fc3d3e..ec972383ae 100644
--- a/bbb-graphql-actions/src/actions/breakoutRoomCreate.ts
+++ b/bbb-graphql-actions/src/actions/breakoutRoomCreate.ts
@@ -1,10 +1,41 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
+import {ValidationError} from "../types/ValidationError";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
const eventName = 'CreateBreakoutRoomsCmdMsg';
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'record', type: 'boolean', required: true},
+ {name: 'captureNotes', type: 'boolean', required: true},
+ {name: 'captureSlides', type: 'boolean', required: true},
+ {name: 'durationInMinutes', type: 'int', required: true},
+ {name: 'sendInviteToModerators', type: 'boolean', required: true},
+ {name: 'rooms', type: 'objectArray', required: true},
+ ]
+ )
+
+ const breakoutRooms = input['rooms'] as Array>;
+ if(breakoutRooms.length < 2) {
+ throw new ValidationError('It is required to set two or more rooms.', 400);
+ }
+
+ throwErrorIfInvalidInput(breakoutRooms[0],
+ [
+ {name: 'captureNotesFilename', type: 'string', required: true},
+ {name: 'captureSlidesFilename', type: 'string', required: true},
+ {name: 'freeJoin', type: 'boolean', required: true},
+ {name: 'isDefaultName', type: 'boolean', required: true},
+ {name: 'name', type: 'string', required: true},
+ {name: 'sequence', type: 'int', required: true},
+ {name: 'shortName', type: 'string', required: true},
+ {name: 'users', type: 'stringArray', required: true},
+ ]
+ )
+
+
const routing = {
meetingId: sessionVariables['x-hasura-meetingid'] as String,
userId: sessionVariables['x-hasura-userid'] as String
diff --git a/bbb-graphql-actions/src/actions/breakoutRoomEndAll.ts b/bbb-graphql-actions/src/actions/breakoutRoomEndAll.ts
index 9cc50fd4a7..f42716ef01 100644
--- a/bbb-graphql-actions/src/actions/breakoutRoomEndAll.ts
+++ b/bbb-graphql-actions/src/actions/breakoutRoomEndAll.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
const eventName = 'EndAllBreakoutRoomsMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/breakoutRoomMoveUser.ts b/bbb-graphql-actions/src/actions/breakoutRoomMoveUser.ts
index 511bae45fa..0a40deeac3 100644
--- a/bbb-graphql-actions/src/actions/breakoutRoomMoveUser.ts
+++ b/bbb-graphql-actions/src/actions/breakoutRoomMoveUser.ts
@@ -1,8 +1,17 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'userId', type: 'string', required: true},
+ {name: 'fromBreakoutRoomId', type: 'string', required: true},
+ {name: 'toBreakoutRoomId', type: 'string', required: true},
+ ]
+ )
+
const eventName = 'ChangeUserBreakoutReqMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/breakoutRoomRequestJoinUrl.ts b/bbb-graphql-actions/src/actions/breakoutRoomRequestJoinUrl.ts
index 5d6361afb2..9ee13c7226 100644
--- a/bbb-graphql-actions/src/actions/breakoutRoomRequestJoinUrl.ts
+++ b/bbb-graphql-actions/src/actions/breakoutRoomRequestJoinUrl.ts
@@ -1,8 +1,15 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
const eventName = 'RequestBreakoutJoinURLReqMsg';
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'breakoutRoomId', type: 'string', required: true},
+ ]
+ )
+
const routing = {
meetingId: sessionVariables['x-hasura-meetingid'] as String,
userId: sessionVariables['x-hasura-userid'] as String
diff --git a/bbb-graphql-actions/src/actions/breakoutRoomSendMessageToAll.ts b/bbb-graphql-actions/src/actions/breakoutRoomSendMessageToAll.ts
index 21c7f5a2a3..24fc7f169c 100644
--- a/bbb-graphql-actions/src/actions/breakoutRoomSendMessageToAll.ts
+++ b/bbb-graphql-actions/src/actions/breakoutRoomSendMessageToAll.ts
@@ -1,8 +1,15 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'message', type: 'string', required: true},
+ ]
+ )
+
const eventName = 'SendMessageToAllBreakoutRoomsReqMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/breakoutRoomSetInviteDismissed.ts b/bbb-graphql-actions/src/actions/breakoutRoomSetInviteDismissed.ts
new file mode 100644
index 0000000000..1f245fc73c
--- /dev/null
+++ b/bbb-graphql-actions/src/actions/breakoutRoomSetInviteDismissed.ts
@@ -0,0 +1,21 @@
+import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
+
+export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ const eventName = `SetBreakoutRoomInviteDismissedReqMsg`;
+
+ const routing = {
+ meetingId: sessionVariables['x-hasura-meetingid'] as String,
+ userId: sessionVariables['x-hasura-userid'] as String
+ };
+
+ const header = {
+ name: eventName,
+ meetingId: routing.meetingId,
+ userId: routing.userId
+ };
+
+ const body = {};
+
+ return { eventName, routing, header, body };
+}
diff --git a/bbb-graphql-actions/src/actions/breakoutRoomSetTime.ts b/bbb-graphql-actions/src/actions/breakoutRoomSetTime.ts
index b6610361b9..211efb7253 100644
--- a/bbb-graphql-actions/src/actions/breakoutRoomSetTime.ts
+++ b/bbb-graphql-actions/src/actions/breakoutRoomSetTime.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'timeInMinutes', type: 'int', required: true},
+ ]
+ )
+
const eventName = 'UpdateBreakoutRoomsTimeReqMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/cameraBroadcastStart.ts b/bbb-graphql-actions/src/actions/cameraBroadcastStart.ts
index 1cde21991f..e4b4d8cb36 100644
--- a/bbb-graphql-actions/src/actions/cameraBroadcastStart.ts
+++ b/bbb-graphql-actions/src/actions/cameraBroadcastStart.ts
@@ -1,6 +1,13 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'stream', type: 'string', required: true},
+ ]
+ )
+
const eventName = `UserBroadcastCamStartMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/cameraBroadcastStop.ts b/bbb-graphql-actions/src/actions/cameraBroadcastStop.ts
index 5468ca9ae7..58b68d3f76 100644
--- a/bbb-graphql-actions/src/actions/cameraBroadcastStop.ts
+++ b/bbb-graphql-actions/src/actions/cameraBroadcastStop.ts
@@ -1,6 +1,13 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'stream', type: 'string', required: true},
+ ]
+ )
+
const eventName = `UserBroadcastCamStopMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/allUsersClearEmoji.ts b/bbb-graphql-actions/src/actions/captionAddLocale.ts
similarity index 66%
rename from bbb-graphql-actions/src/actions/allUsersClearEmoji.ts
rename to bbb-graphql-actions/src/actions/captionAddLocale.ts
index 2748cd48bb..aeefccf25e 100644
--- a/bbb-graphql-actions/src/actions/allUsersClearEmoji.ts
+++ b/bbb-graphql-actions/src/actions/captionAddLocale.ts
@@ -1,9 +1,16 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
- const eventName = `ClearAllUsersEmojiCmdMsg`;
+
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'locale', type: 'string', required: true},
+ ]
+ )
+
+ const eventName = `AddCaptionLocalePubMsg`;
const routing = {
meetingId: sessionVariables['x-hasura-meetingid'] as String,
@@ -17,7 +24,7 @@ export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'transcriptId', type: 'string', required: true},
+ {name: 'start', type: 'int', required: true},
+ {name: 'end', type: 'int', required: true},
+ {name: 'text', type: 'string', required: true},
+ {name: 'transcript', type: 'string', required: true},
+ {name: 'locale', type: 'string', required: true},
+ {name: 'isFinal', type: 'boolean', required: true},
+ ]
+ )
+
const eventName = `UpdateTranscriptPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/captionSubmitTranscript.ts b/bbb-graphql-actions/src/actions/captionSubmitTranscript.ts
new file mode 100644
index 0000000000..85a0595c03
--- /dev/null
+++ b/bbb-graphql-actions/src/actions/captionSubmitTranscript.ts
@@ -0,0 +1,36 @@
+
+import { throwErrorIfInvalidInput } from '../imports/validation';
+import { RedisMessage } from '../types';
+
+export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ const eventName = `CaptionSubmitTranscriptPubMsg`;
+
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'transcriptId', type: 'string', required: true},
+ {name: 'transcript', type: 'string', required: true},
+ {name: 'locale', type: 'string', required: true},
+ {name: 'captionType', type: 'string', required: true},
+ ]
+)
+
+ const routing = {
+ meetingId: sessionVariables['x-hasura-meetingid'] as String,
+ userId: sessionVariables['x-hasura-userid'] as String
+ };
+
+ const header = {
+ name: eventName,
+ meetingId: routing.meetingId,
+ userId: routing.userId
+ };
+
+ const body = {
+ transcriptId: input.transcriptId,
+ transcript: input.transcript,
+ locale: input.locale,
+ captionType: input.captionType,
+ };
+
+ return { eventName, routing, header, body };
+}
diff --git a/bbb-graphql-actions/src/actions/chatCreateWithUser.ts b/bbb-graphql-actions/src/actions/chatCreateWithUser.ts
index b2b1cde5a1..53f3c5064e 100644
--- a/bbb-graphql-actions/src/actions/chatCreateWithUser.ts
+++ b/bbb-graphql-actions/src/actions/chatCreateWithUser.ts
@@ -1,6 +1,13 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'userId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `CreateGroupChatReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/chatPublicClearHistory.ts b/bbb-graphql-actions/src/actions/chatPublicClearHistory.ts
index 0ad08f3ef3..f2694c8a0b 100644
--- a/bbb-graphql-actions/src/actions/chatPublicClearHistory.ts
+++ b/bbb-graphql-actions/src/actions/chatPublicClearHistory.ts
@@ -1,8 +1,9 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
const eventName = `ClearPublicChatHistoryPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/chatRemove.ts b/bbb-graphql-actions/src/actions/chatRemove.ts
index 02781858bf..3dccb1478d 100644
--- a/bbb-graphql-actions/src/actions/chatRemove.ts
+++ b/bbb-graphql-actions/src/actions/chatRemove.ts
@@ -1,6 +1,13 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'chatId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `DestroyGroupChatReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/chatSendMessage.ts b/bbb-graphql-actions/src/actions/chatSendMessage.ts
index d6741cfc16..a5c48f31ca 100644
--- a/bbb-graphql-actions/src/actions/chatSendMessage.ts
+++ b/bbb-graphql-actions/src/actions/chatSendMessage.ts
@@ -1,8 +1,16 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
- const eventName = `SendGroupChatMessageMsg`;
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'chatMessageInMarkdownFormat', type: 'string', required: true},
+ {name: 'chatId', type: 'string', required: true},
+ {name: 'metadata', type: 'json', required: false}
+ ]
+ )
+ const eventName = `SendGroupChatMessageMsg`;
const routing = {
meetingId: sessionVariables['x-hasura-meetingid'] as String,
userId: sessionVariables['x-hasura-userid'] as String
@@ -22,7 +30,8 @@ export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'chatId', type: 'string', required: true},
+ {name: 'lastSeenAt', type: 'string', required: true},
+ ]
+ )
+
+ const eventName = `SetGroupChatLastSeenReqMsg`;
+
+ const routing = {
+ meetingId: sessionVariables['x-hasura-meetingid'] as String,
+ userId: sessionVariables['x-hasura-userid'] as String
+ };
+
+ const header = {
+ name: eventName,
+ meetingId: routing.meetingId,
+ userId: routing.userId
+ };
+
+ const body = {
+ chatId: input.chatId,
+ lastSeenAt: input.lastSeenAt,
+ };
+
+ return { eventName, routing, header, body };
+}
diff --git a/bbb-graphql-actions/src/actions/chatSetTyping.ts b/bbb-graphql-actions/src/actions/chatSetTyping.ts
index 081e6e3ace..9e80704d5d 100644
--- a/bbb-graphql-actions/src/actions/chatSetTyping.ts
+++ b/bbb-graphql-actions/src/actions/chatSetTyping.ts
@@ -1,6 +1,13 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'chatId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `UserTypingPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/chatSetVisible.ts b/bbb-graphql-actions/src/actions/chatSetVisible.ts
new file mode 100644
index 0000000000..5d87faacb0
--- /dev/null
+++ b/bbb-graphql-actions/src/actions/chatSetVisible.ts
@@ -0,0 +1,31 @@
+import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
+
+export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'chatId', type: 'string', required: true},
+ {name: 'visible', type: 'boolean', required: true},
+ ]
+ )
+
+ const eventName = `SetGroupChatVisibleReqMsg`;
+
+ const routing = {
+ meetingId: sessionVariables['x-hasura-meetingid'] as String,
+ userId: sessionVariables['x-hasura-userid'] as String
+ };
+
+ const header = {
+ name: eventName,
+ meetingId: routing.meetingId,
+ userId: routing.userId
+ };
+
+ const body = {
+ chatId: input.chatId,
+ visible: input.visible,
+ };
+
+ return { eventName, routing, header, body };
+}
diff --git a/bbb-graphql-actions/src/actions/externalVideoStart.ts b/bbb-graphql-actions/src/actions/externalVideoStart.ts
index 0cd41e3710..e3c5131577 100644
--- a/bbb-graphql-actions/src/actions/externalVideoStart.ts
+++ b/bbb-graphql-actions/src/actions/externalVideoStart.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'externalVideoUrl', type: 'string', required: true},
+ ]
+ )
+
const eventName = `StartExternalVideoPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/externalVideoStop.ts b/bbb-graphql-actions/src/actions/externalVideoStop.ts
index 788026846e..de27e0d78e 100644
--- a/bbb-graphql-actions/src/actions/externalVideoStop.ts
+++ b/bbb-graphql-actions/src/actions/externalVideoStop.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+
const eventName = `StopExternalVideoPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/externalVideoUpdate.ts b/bbb-graphql-actions/src/actions/externalVideoUpdate.ts
index e9e475a8d5..2f8c6a92e6 100644
--- a/bbb-graphql-actions/src/actions/externalVideoUpdate.ts
+++ b/bbb-graphql-actions/src/actions/externalVideoUpdate.ts
@@ -1,8 +1,17 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'status', type: 'string', required: true},
+ {name: 'rate', type: 'number', required: true},
+ {name: 'time', type: 'number', required: true},
+ {name: 'state', type: 'number', required: true},
+ ]
+ )
+
const eventName = `UpdateExternalVideoPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/guestUsersSetLobbyMessage.ts b/bbb-graphql-actions/src/actions/guestUsersSetLobbyMessage.ts
index 1d74aa9176..baa247a41d 100644
--- a/bbb-graphql-actions/src/actions/guestUsersSetLobbyMessage.ts
+++ b/bbb-graphql-actions/src/actions/guestUsersSetLobbyMessage.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'message', type: 'string', required: true},
+ ]
+ )
+
const eventName = 'SetGuestLobbyMessageCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/guestUsersSetLobbyMessagePrivate.ts b/bbb-graphql-actions/src/actions/guestUsersSetLobbyMessagePrivate.ts
index 3a21f19d07..d9b53058e6 100644
--- a/bbb-graphql-actions/src/actions/guestUsersSetLobbyMessagePrivate.ts
+++ b/bbb-graphql-actions/src/actions/guestUsersSetLobbyMessagePrivate.ts
@@ -1,8 +1,15 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'guestId', type: 'string', required: true},
+ {name: 'message', type: 'string', required: true},
+ ]
+ )
+
const eventName = 'SetPrivateGuestLobbyMessageCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/guestUsersSetPolicy.ts b/bbb-graphql-actions/src/actions/guestUsersSetPolicy.ts
index 1841db5d0a..754983b3a6 100644
--- a/bbb-graphql-actions/src/actions/guestUsersSetPolicy.ts
+++ b/bbb-graphql-actions/src/actions/guestUsersSetPolicy.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'guestPolicy', type: 'string', required: true},
+ ]
+ )
+
const eventName = 'SetGuestPolicyCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/guestUsersSubmitApprovalStatus.ts b/bbb-graphql-actions/src/actions/guestUsersSubmitApprovalStatus.ts
index 8d46efffb5..14338cc211 100644
--- a/bbb-graphql-actions/src/actions/guestUsersSubmitApprovalStatus.ts
+++ b/bbb-graphql-actions/src/actions/guestUsersSubmitApprovalStatus.ts
@@ -1,8 +1,24 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'guests', type: 'objectArray', required: true},
+ ]
+ )
+
+ const guests = input['guests'] as Array>;
+ if(guests.length > 0) {
+ throwErrorIfInvalidInput(guests[0],
+ [
+ {name: 'guest', type: 'string', required: true},
+ {name: 'status', type: 'string', required: true},
+ ]
+ )
+ }
+
const eventName = 'GuestsWaitingApprovedMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/meetingEnd.ts b/bbb-graphql-actions/src/actions/meetingEnd.ts
index c527dedd95..03c5fcb6dc 100644
--- a/bbb-graphql-actions/src/actions/meetingEnd.ts
+++ b/bbb-graphql-actions/src/actions/meetingEnd.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
const eventName = 'LogoutAndEndMeetingCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/meetingLayoutSetProps.ts b/bbb-graphql-actions/src/actions/meetingLayoutSetProps.ts
index 9ed32008f4..af4a192456 100644
--- a/bbb-graphql-actions/src/actions/meetingLayoutSetProps.ts
+++ b/bbb-graphql-actions/src/actions/meetingLayoutSetProps.ts
@@ -1,8 +1,20 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'layout', type: 'string', required: true},
+ {name: 'syncWithPresenterLayout', type: 'boolean', required: true},
+ {name: 'presentationIsOpen', type: 'boolean', required: true},
+ {name: 'isResizing', type: 'boolean', required: true},
+ {name: 'cameraPosition', type: 'string', required: false},
+ {name: 'focusedCamera', type: 'string', required: true},
+ {name: 'presentationVideoRate', type: 'number', required: true},
+ ]
+ )
+
const eventName = 'BroadcastLayoutMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/meetingLayoutSetSyncWithPresenterLayout.ts b/bbb-graphql-actions/src/actions/meetingLayoutSetSyncWithPresenterLayout.ts
index 0cecb31e2b..6d5f84b42b 100644
--- a/bbb-graphql-actions/src/actions/meetingLayoutSetSyncWithPresenterLayout.ts
+++ b/bbb-graphql-actions/src/actions/meetingLayoutSetSyncWithPresenterLayout.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'syncWithPresenterLayout', type: 'boolean', required: true},
+ ]
+ )
+
const eventName = 'BroadcastPushLayoutMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/meetingLockSettingsSetProps.ts b/bbb-graphql-actions/src/actions/meetingLockSettingsSetProps.ts
index bf8b9e2671..d9786e1aeb 100644
--- a/bbb-graphql-actions/src/actions/meetingLockSettingsSetProps.ts
+++ b/bbb-graphql-actions/src/actions/meetingLockSettingsSetProps.ts
@@ -1,8 +1,23 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'disableCam', type: 'boolean', required: true},
+ {name: 'disableMic', type: 'boolean', required: true},
+ {name: 'disablePrivChat', type: 'boolean', required: true},
+ {name: 'disablePubChat', type: 'boolean', required: true},
+ {name: 'disableNotes', type: 'boolean', required: true},
+ {name: 'hideUserList', type: 'boolean', required: true},
+ {name: 'lockOnJoin', type: 'boolean', required: true},
+ {name: 'lockOnJoinConfigurable', type: 'boolean', required: true},
+ {name: 'hideViewersCursor', type: 'boolean', required: true},
+ {name: 'hideViewersAnnotation', type: 'boolean', required: true},
+ ]
+ )
+
const eventName = 'ChangeLockSettingsInMeetingCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/meetingRecordingSetStatus.ts b/bbb-graphql-actions/src/actions/meetingRecordingSetStatus.ts
index 10af9e82f7..62a12d6a5b 100644
--- a/bbb-graphql-actions/src/actions/meetingRecordingSetStatus.ts
+++ b/bbb-graphql-actions/src/actions/meetingRecordingSetStatus.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'recording', type: 'boolean', required: true},
+ ]
+ )
+
const eventName = 'SetRecordingStatusCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/meetingSetMuted.ts b/bbb-graphql-actions/src/actions/meetingSetMuted.ts
index 67451e3bb6..0c21b89cbb 100644
--- a/bbb-graphql-actions/src/actions/meetingSetMuted.ts
+++ b/bbb-graphql-actions/src/actions/meetingSetMuted.ts
@@ -1,8 +1,15 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'muted', type: 'boolean', required: true},
+ {name: 'exceptPresenter', type: 'boolean', required: false},
+ ]
+ )
+
const eventName =
(input.exceptPresenter || false) ?
'MuteAllExceptPresentersCmdMsg' :
diff --git a/bbb-graphql-actions/src/actions/meetingSetWebcamOnlyForModerator.ts b/bbb-graphql-actions/src/actions/meetingSetWebcamOnlyForModerator.ts
index c0f99ba0e5..fa59c50c1d 100644
--- a/bbb-graphql-actions/src/actions/meetingSetWebcamOnlyForModerator.ts
+++ b/bbb-graphql-actions/src/actions/meetingSetWebcamOnlyForModerator.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'webcamsOnlyForModerator', type: 'boolean', required: true},
+ ]
+ )
+
const eventName = 'UpdateWebcamsOnlyForModeratorCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/pluginDataChannelDeleteEntry.ts b/bbb-graphql-actions/src/actions/pluginDataChannelDeleteEntry.ts
index 1b7c23b037..5aae2a066e 100644
--- a/bbb-graphql-actions/src/actions/pluginDataChannelDeleteEntry.ts
+++ b/bbb-graphql-actions/src/actions/pluginDataChannelDeleteEntry.ts
@@ -1,7 +1,17 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
- const eventName = `PluginDataChannelDeleteMessageMsg`;
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pluginName', type: 'string', required: true},
+ {name: 'channelName', type: 'string', required: true},
+ {name: 'subChannelName', type: 'string', required: true},
+ {name: 'entryId', type: 'string', required: true},
+ ]
+ )
+
+ const eventName = `PluginDataChannelDeleteEntryMsg`;
const routing = {
meetingId: sessionVariables['x-hasura-meetingid'] as String,
diff --git a/bbb-graphql-actions/src/actions/pluginDataChannelPushEntry.ts b/bbb-graphql-actions/src/actions/pluginDataChannelPushEntry.ts
index 9d90c2054e..e27724fabc 100644
--- a/bbb-graphql-actions/src/actions/pluginDataChannelPushEntry.ts
+++ b/bbb-graphql-actions/src/actions/pluginDataChannelPushEntry.ts
@@ -1,7 +1,19 @@
import { RedisMessage } from '../types';
import { ValidationError } from '../types/ValidationError';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pluginName', type: 'string', required: true},
+ {name: 'subChannelName', type: 'string', required: true},
+ {name: 'channelName', type: 'string', required: true},
+ {name: 'payloadJson', type: 'json', required: true},
+ {name: 'toRoles', type: 'stringArray', required: true},
+ {name: 'toUserIds', type: 'stringArray', required: true},
+ ]
+ )
+
const eventName = `PluginDataChannelPushEntryMsg`;
const routing = {
@@ -15,12 +27,6 @@ export default function buildRedisMessage(sessionVariables: Recordinput.payloadJson);
- } catch (e) {
- throw new ValidationError('Field `payloadJson` contains an invalid Json.', 400);
- }
-
const body = {
pluginName: input.pluginName,
channelName: input.channelName,
diff --git a/bbb-graphql-actions/src/actions/pluginDataChannelReplaceEntry.ts b/bbb-graphql-actions/src/actions/pluginDataChannelReplaceEntry.ts
new file mode 100644
index 0000000000..ed22c24020
--- /dev/null
+++ b/bbb-graphql-actions/src/actions/pluginDataChannelReplaceEntry.ts
@@ -0,0 +1,38 @@
+import { RedisMessage } from '../types';
+import { ValidationError } from '../types/ValidationError';
+import {throwErrorIfInvalidInput} from "../imports/validation";
+
+export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pluginName', type: 'string', required: true},
+ {name: 'subChannelName', type: 'string', required: true},
+ {name: 'channelName', type: 'string', required: true},
+ {name: 'payloadJson', type: 'json', required: true},
+ {name: 'entryId', type: 'string', required: true},
+ ]
+ )
+
+ const eventName = `PluginDataChannelReplaceEntryMsg`;
+
+ const routing = {
+ meetingId: sessionVariables['x-hasura-meetingid'] as String,
+ userId: sessionVariables['x-hasura-userid'] as String
+ };
+
+ const header = {
+ name: eventName,
+ meetingId: routing.meetingId,
+ userId: routing.userId
+ };
+
+ const body = {
+ pluginName: input.pluginName,
+ channelName: input.channelName,
+ subChannelName: input.subChannelName,
+ payloadJson: input.payloadJson,
+ entryId: input.entryId,
+ };
+
+ return { eventName, routing, header, body };
+}
diff --git a/bbb-graphql-actions/src/actions/pluginDataChannelReset.ts b/bbb-graphql-actions/src/actions/pluginDataChannelReset.ts
index 0a92b27ac4..24fa9ea24b 100644
--- a/bbb-graphql-actions/src/actions/pluginDataChannelReset.ts
+++ b/bbb-graphql-actions/src/actions/pluginDataChannelReset.ts
@@ -1,6 +1,15 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pluginName', type: 'string', required: true},
+ {name: 'channelName', type: 'string', required: true},
+ {name: 'subChannelName', type: 'string', required: true},
+ ]
+ )
+
const eventName = `PluginDataChannelResetMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/pluginLearningAnalyticsDashboardSendGenericData.ts b/bbb-graphql-actions/src/actions/pluginLearningAnalyticsDashboardSendGenericData.ts
new file mode 100644
index 0000000000..3b831e747f
--- /dev/null
+++ b/bbb-graphql-actions/src/actions/pluginLearningAnalyticsDashboardSendGenericData.ts
@@ -0,0 +1,45 @@
+import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
+
+export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pluginName', type: 'string', required: true},
+ {name: 'genericDataForLearningAnalyticsDashboard', type: 'json', required: true},
+ ]
+ )
+
+
+ const genericDataForLearningAnalyticsDashboard = input[
+ 'genericDataForLearningAnalyticsDashboard'
+ ] as Record;
+ if(genericDataForLearningAnalyticsDashboard) {
+ throwErrorIfInvalidInput(genericDataForLearningAnalyticsDashboard,
+ [
+ {name: 'cardTitle', type: 'string', required: true},
+ {name: 'columnTitle', type: 'string', required: true},
+ {name: 'value', type: 'string', required: true},
+ ]
+ )
+ }
+
+ const eventName = `PluginLearningAnalyticsDashboardSendGenericDataMsg`;
+
+ const routing = {
+ meetingId: sessionVariables['x-hasura-meetingid'] as String,
+ userId: sessionVariables['x-hasura-userid'] as String
+ };
+
+ const header = {
+ name: eventName,
+ meetingId: routing.meetingId,
+ userId: routing.userId
+ };
+
+ const body = {
+ pluginName: input.pluginName,
+ genericDataForLearningAnalyticsDashboard: input.genericDataForLearningAnalyticsDashboard,
+ };
+
+ return { eventName, routing, header, body };
+}
diff --git a/bbb-graphql-actions/src/actions/pollCancel.ts b/bbb-graphql-actions/src/actions/pollCancel.ts
index 572053b14c..9ef887e9f3 100644
--- a/bbb-graphql-actions/src/actions/pollCancel.ts
+++ b/bbb-graphql-actions/src/actions/pollCancel.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+
const eventName = `StopPollReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/pollCreate.ts b/bbb-graphql-actions/src/actions/pollCreate.ts
index e38e8bf194..c5bb386449 100644
--- a/bbb-graphql-actions/src/actions/pollCreate.ts
+++ b/bbb-graphql-actions/src/actions/pollCreate.ts
@@ -1,9 +1,20 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
import {ValidationError} from "../types/ValidationError";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pollId', type: 'string', required: true},
+ {name: 'pollType', type: 'string', required: true},
+ {name: 'secretPoll', type: 'boolean', required: true},
+ {name: 'question', type: 'string', required: true},
+ {name: 'isMultipleResponse', type: 'boolean', required: true},
+ {name: 'answers', type: 'stringArray', required: false},
+ ]
+ )
+
const eventName = input.pollType === 'CUSTOM' ? `StartCustomPollReqMsg` : `StartPollReqMsg`
const routing = {
diff --git a/bbb-graphql-actions/src/actions/pollPublishResult.ts b/bbb-graphql-actions/src/actions/pollPublishResult.ts
index ddeea372e0..7c8279726c 100644
--- a/bbb-graphql-actions/src/actions/pollPublishResult.ts
+++ b/bbb-graphql-actions/src/actions/pollPublishResult.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pollId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `ShowPollResultReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/pollSubmitUserTypedVote.ts b/bbb-graphql-actions/src/actions/pollSubmitUserTypedVote.ts
index c5cc16f481..2cb568091f 100644
--- a/bbb-graphql-actions/src/actions/pollSubmitUserTypedVote.ts
+++ b/bbb-graphql-actions/src/actions/pollSubmitUserTypedVote.ts
@@ -1,6 +1,14 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pollId', type: 'string', required: true},
+ {name: 'answer', type: 'string', required: true},
+ ]
+ )
+
const eventName = `RespondToTypedPollReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/pollSubmitUserVote.ts b/bbb-graphql-actions/src/actions/pollSubmitUserVote.ts
index 457484c381..57a5acd362 100644
--- a/bbb-graphql-actions/src/actions/pollSubmitUserVote.ts
+++ b/bbb-graphql-actions/src/actions/pollSubmitUserVote.ts
@@ -1,6 +1,14 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pollId', type: 'string', required: true},
+ {name: 'answerIds', type: 'intArray', required: true},
+ ]
+ )
+
const eventName = `RespondToPollReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presAnnotationDelete.ts b/bbb-graphql-actions/src/actions/presAnnotationDelete.ts
index 69a1f13ba9..d8703dae7f 100644
--- a/bbb-graphql-actions/src/actions/presAnnotationDelete.ts
+++ b/bbb-graphql-actions/src/actions/presAnnotationDelete.ts
@@ -1,6 +1,14 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pageId', type: 'string', required: true},
+ {name: 'annotationsIds', type: 'stringArray', required: true},
+ ]
+ )
+
const eventName = `DeleteWhiteboardAnnotationsPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presAnnotationDeleteAll.ts b/bbb-graphql-actions/src/actions/presAnnotationDeleteAll.ts
index 6d26a6b160..3c3bd2dd91 100644
--- a/bbb-graphql-actions/src/actions/presAnnotationDeleteAll.ts
+++ b/bbb-graphql-actions/src/actions/presAnnotationDeleteAll.ts
@@ -1,7 +1,14 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
- const eventName = `DeleteWhiteboardAnnotationsPubMsg`;
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pageId', type: 'string', required: true},
+ ]
+ )
+
+ const eventName = `DeleteWhiteboardAnnotationsPubMsg`;
const routing = {
meetingId: sessionVariables['x-hasura-meetingid'] as String,
diff --git a/bbb-graphql-actions/src/actions/presAnnotationSubmit.ts b/bbb-graphql-actions/src/actions/presAnnotationSubmit.ts
index e66893e3af..297bca4982 100644
--- a/bbb-graphql-actions/src/actions/presAnnotationSubmit.ts
+++ b/bbb-graphql-actions/src/actions/presAnnotationSubmit.ts
@@ -1,7 +1,15 @@
import { RedisMessage } from '../types';
import { ValidationError } from '../types/ValidationError';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pageId', type: 'string', required: true},
+ {name: 'annotations', type: 'jsonArray', required: true},
+ ]
+ )
+
const eventName = `SendWhiteboardAnnotationsPubMsg`;
const routing = {
@@ -15,10 +23,6 @@ export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'presentationId', type: 'string', required: true},
+ {name: 'fileStateType', type: 'string', required: true},
+ ]
+ )
+
const eventName = `MakePresentationDownloadReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presentationPublishCursor.ts b/bbb-graphql-actions/src/actions/presentationPublishCursor.ts
index 2393fbfec5..e8a07cf522 100644
--- a/bbb-graphql-actions/src/actions/presentationPublishCursor.ts
+++ b/bbb-graphql-actions/src/actions/presentationPublishCursor.ts
@@ -1,6 +1,15 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'whiteboardId', type: 'string', required: true},
+ {name: 'xPercent', type: 'number', required: true},
+ {name: 'yPercent', type: 'number', required: true},
+ ]
+ )
+
const eventName = `SendCursorPositionPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presentationRemove.ts b/bbb-graphql-actions/src/actions/presentationRemove.ts
index a484539a7c..a6be86e722 100644
--- a/bbb-graphql-actions/src/actions/presentationRemove.ts
+++ b/bbb-graphql-actions/src/actions/presentationRemove.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
import { ValidationError } from '../types/ValidationError';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'presentationId', type: 'string', required: true},
+ ]
+ )
+
throwErrorIfNotPresenter(sessionVariables);
const eventName = `RemovePresentationPubMsg`;
diff --git a/bbb-graphql-actions/src/actions/presentationRequestUploadToken.ts b/bbb-graphql-actions/src/actions/presentationRequestUploadToken.ts
index 0efdb2f47d..0eaaeb8756 100644
--- a/bbb-graphql-actions/src/actions/presentationRequestUploadToken.ts
+++ b/bbb-graphql-actions/src/actions/presentationRequestUploadToken.ts
@@ -1,9 +1,16 @@
import { RedisMessage } from '../types';
-import { ValidationError } from '../types/ValidationError';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'podId', type: 'string', required: true},
+ {name: 'filename', type: 'string', required: true},
+ {name: 'uploadTemporaryId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `PresentationUploadTokenReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presentationSetCurrent.ts b/bbb-graphql-actions/src/actions/presentationSetCurrent.ts
index 4537e18793..3badb3f212 100644
--- a/bbb-graphql-actions/src/actions/presentationSetCurrent.ts
+++ b/bbb-graphql-actions/src/actions/presentationSetCurrent.ts
@@ -1,9 +1,15 @@
import { RedisMessage } from '../types';
import { ValidationError } from '../types/ValidationError';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'presentationId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `SetCurrentPresentationPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presentationSetDownloadable.ts b/bbb-graphql-actions/src/actions/presentationSetDownloadable.ts
index 33ee462298..17723c0079 100644
--- a/bbb-graphql-actions/src/actions/presentationSetDownloadable.ts
+++ b/bbb-graphql-actions/src/actions/presentationSetDownloadable.ts
@@ -1,8 +1,16 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'presentationId', type: 'string', required: true},
+ {name: 'downloadable', type: 'boolean', required: true},
+ {name: 'fileStateType', type: 'string', required: true},
+ ]
+ )
+
const eventName = `SetPresentationDownloadablePubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presentationSetPage.ts b/bbb-graphql-actions/src/actions/presentationSetPage.ts
index dcdd7d3f0e..915aa461d5 100644
--- a/bbb-graphql-actions/src/actions/presentationSetPage.ts
+++ b/bbb-graphql-actions/src/actions/presentationSetPage.ts
@@ -1,9 +1,16 @@
import { RedisMessage } from '../types';
import { ValidationError } from '../types/ValidationError';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'presentationId', type: 'string', required: true},
+ {name: 'pageId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `SetCurrentPagePubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presentationSetPageInfiniteWhiteboard.ts b/bbb-graphql-actions/src/actions/presentationSetPageInfiniteWhiteboard.ts
new file mode 100644
index 0000000000..80390526ec
--- /dev/null
+++ b/bbb-graphql-actions/src/actions/presentationSetPageInfiniteWhiteboard.ts
@@ -0,0 +1,32 @@
+import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
+
+export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'infiniteWhiteboard', type: 'boolean', required: true},
+ {name: 'pageId', type: 'string', required: true},
+ ]
+ )
+
+ const eventName = `SetPageInfiniteWhiteboardPubMsg`;
+
+ const routing = {
+ meetingId: sessionVariables['x-hasura-meetingid'] as string,
+ userId: sessionVariables['x-hasura-userid'] as string
+ };
+
+ const header = {
+ name: eventName,
+ meetingId: routing.meetingId,
+ userId: routing.userId
+ };
+
+ const body = {
+ pageId: input.pageId,
+ infiniteWhiteboard: input.infiniteWhiteboard,
+ };
+
+ return { eventName, routing, header, body };
+}
diff --git a/bbb-graphql-actions/src/actions/presentationSetRenderedInToast.ts b/bbb-graphql-actions/src/actions/presentationSetRenderedInToast.ts
index d35b9301aa..cee04a7c7b 100644
--- a/bbb-graphql-actions/src/actions/presentationSetRenderedInToast.ts
+++ b/bbb-graphql-actions/src/actions/presentationSetRenderedInToast.ts
@@ -1,9 +1,14 @@
import { RedisMessage } from '../types';
-import { ValidationError } from '../types/ValidationError';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'presentationId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `SetPresentationRenderedInToastPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presentationSetWriters.ts b/bbb-graphql-actions/src/actions/presentationSetWriters.ts
index 9c62e05501..94b63a0121 100644
--- a/bbb-graphql-actions/src/actions/presentationSetWriters.ts
+++ b/bbb-graphql-actions/src/actions/presentationSetWriters.ts
@@ -1,9 +1,16 @@
import { RedisMessage } from '../types';
import { ValidationError } from '../types/ValidationError';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'pageId', type: 'string', required: true},
+ {name: 'usersIds', type: 'stringArray', required: true},
+ ]
+ )
+
const eventName = `ModifyWhiteboardAccessPubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/presentationSetZoom.ts b/bbb-graphql-actions/src/actions/presentationSetZoom.ts
index dbc0f565e6..e1c1e6e64b 100644
--- a/bbb-graphql-actions/src/actions/presentationSetZoom.ts
+++ b/bbb-graphql-actions/src/actions/presentationSetZoom.ts
@@ -1,9 +1,20 @@
import { RedisMessage } from '../types';
-import { ValidationError } from '../types/ValidationError';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'presentationId', type: 'string', required: true},
+ {name: 'pageId', type: 'string', required: true},
+ {name: 'pageNum', type: 'int', required: true},
+ {name: 'xOffset', type: 'number', required: true},
+ {name: 'yOffset', type: 'number', required: true},
+ {name: 'widthRatio', type: 'number', required: true},
+ {name: 'heightRatio', type: 'number', required: true},
+ ]
+ )
+
const eventName = `ResizeAndMovePagePubMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/sharedNotesCreateSession.ts b/bbb-graphql-actions/src/actions/sharedNotesCreateSession.ts
index 2f0cdac7ce..823c6e4921 100644
--- a/bbb-graphql-actions/src/actions/sharedNotesCreateSession.ts
+++ b/bbb-graphql-actions/src/actions/sharedNotesCreateSession.ts
@@ -1,6 +1,13 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'sharedNotesExtId', type: 'string', required: true},
+ ]
+ )
+
const eventName = `PadCreateSessionReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/sharedNotesSetPinned.ts b/bbb-graphql-actions/src/actions/sharedNotesSetPinned.ts
index 35fa3f92b2..6336b5a59f 100644
--- a/bbb-graphql-actions/src/actions/sharedNotesSetPinned.ts
+++ b/bbb-graphql-actions/src/actions/sharedNotesSetPinned.ts
@@ -1,8 +1,15 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotPresenter} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotPresenter} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotPresenter(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'sharedNotesExtId', type: 'string', required: true},
+ {name: 'pinned', type: 'boolean', required: true},
+ ]
+ )
+
const eventName = `PadPinnedReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/timerActivate.ts b/bbb-graphql-actions/src/actions/timerActivate.ts
index 8a64794a4c..3edd0bd236 100644
--- a/bbb-graphql-actions/src/actions/timerActivate.ts
+++ b/bbb-graphql-actions/src/actions/timerActivate.ts
@@ -1,8 +1,17 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'stopwatch', type: 'boolean', required: true},
+ {name: 'running', type: 'boolean', required: true},
+ {name: 'time', type: 'int', required: true},
+ {name: 'track', type: 'string', required: false},
+ ]
+ )
+
const eventName = `ActivateTimerReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/timerDeactivate.ts b/bbb-graphql-actions/src/actions/timerDeactivate.ts
index 038a29050c..6c7a8a766a 100644
--- a/bbb-graphql-actions/src/actions/timerDeactivate.ts
+++ b/bbb-graphql-actions/src/actions/timerDeactivate.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
const eventName = `DeactivateTimerReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/timerReset.ts b/bbb-graphql-actions/src/actions/timerReset.ts
index 3f4fae28e3..1910e3f2a3 100644
--- a/bbb-graphql-actions/src/actions/timerReset.ts
+++ b/bbb-graphql-actions/src/actions/timerReset.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
const eventName = `ResetTimerReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/timerSetSongTrack.ts b/bbb-graphql-actions/src/actions/timerSetSongTrack.ts
index 3e486e2130..74e08478f3 100644
--- a/bbb-graphql-actions/src/actions/timerSetSongTrack.ts
+++ b/bbb-graphql-actions/src/actions/timerSetSongTrack.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'track', type: 'string', required: true},
+ ]
+ )
+
const eventName = `SetTrackReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/timerSetTime.ts b/bbb-graphql-actions/src/actions/timerSetTime.ts
index 2cb9cd2984..26ce5336af 100644
--- a/bbb-graphql-actions/src/actions/timerSetTime.ts
+++ b/bbb-graphql-actions/src/actions/timerSetTime.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'time', type: 'int', required: true},
+ ]
+ )
+
const eventName = `SetTimerReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/timerStart.ts b/bbb-graphql-actions/src/actions/timerStart.ts
index 07644d4425..b57751fec9 100644
--- a/bbb-graphql-actions/src/actions/timerStart.ts
+++ b/bbb-graphql-actions/src/actions/timerStart.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
const eventName = `StartTimerReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/timerStop.ts b/bbb-graphql-actions/src/actions/timerStop.ts
index e38b1a6177..fe102e2140 100644
--- a/bbb-graphql-actions/src/actions/timerStop.ts
+++ b/bbb-graphql-actions/src/actions/timerStop.ts
@@ -3,6 +3,7 @@ import {throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+
const eventName = `StopTimerReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/timerSwitchMode.ts b/bbb-graphql-actions/src/actions/timerSwitchMode.ts
index e484a28c77..839c0803c4 100644
--- a/bbb-graphql-actions/src/actions/timerSwitchMode.ts
+++ b/bbb-graphql-actions/src/actions/timerSwitchMode.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'stopwatch', type: 'boolean', required: true},
+ ]
+ )
+
const eventName = `SwitchTimerReqMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/userEjectCameras.ts b/bbb-graphql-actions/src/actions/userEjectCameras.ts
index 0fac5a1bf6..5a9374b05f 100644
--- a/bbb-graphql-actions/src/actions/userEjectCameras.ts
+++ b/bbb-graphql-actions/src/actions/userEjectCameras.ts
@@ -1,8 +1,14 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'userId', type: 'string', required: true},
+ ]
+ )
+
const eventName = 'EjectUserCamerasCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/userEjectFromMeeting.ts b/bbb-graphql-actions/src/actions/userEjectFromMeeting.ts
index 4c3f4fa2c0..8838e61cf9 100644
--- a/bbb-graphql-actions/src/actions/userEjectFromMeeting.ts
+++ b/bbb-graphql-actions/src/actions/userEjectFromMeeting.ts
@@ -1,8 +1,15 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'userId', type: 'string', required: true},
+ {name: 'banUser', type: 'boolean', required: true},
+ ]
+ )
+
const eventName = `EjectUserFromMeetingCmdMsg`;
const routing = {
diff --git a/bbb-graphql-actions/src/actions/userEjectFromVoice.ts b/bbb-graphql-actions/src/actions/userEjectFromVoice.ts
index 39d47a61c0..3d38d028c4 100644
--- a/bbb-graphql-actions/src/actions/userEjectFromVoice.ts
+++ b/bbb-graphql-actions/src/actions/userEjectFromVoice.ts
@@ -1,8 +1,15 @@
import { RedisMessage } from '../types';
-import {throwErrorIfNotModerator} from "../imports/validation";
+import {throwErrorIfInvalidInput, throwErrorIfNotModerator} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record, input: Record): RedisMessage {
throwErrorIfNotModerator(sessionVariables);
+ throwErrorIfInvalidInput(input,
+ [
+ {name: 'userId', type: 'string', required: true},
+ {name: 'banUser', type: 'boolean', required: false},
+ ]
+ )
+
const eventName = 'EjectUserFromVoiceCmdMsg';
const routing = {
diff --git a/bbb-graphql-actions/src/actions/userJoinMeeting.ts b/bbb-graphql-actions/src/actions/userJoinMeeting.ts
index 1898af69d9..25d961a62d 100644
--- a/bbb-graphql-actions/src/actions/userJoinMeeting.ts
+++ b/bbb-graphql-actions/src/actions/userJoinMeeting.ts
@@ -1,6 +1,15 @@
import { RedisMessage } from '../types';
+import {throwErrorIfInvalidInput} from "../imports/validation";
export default function buildRedisMessage(sessionVariables: Record