From 3c67a6d765fce4f5a978c288525b528f82db2617 Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Fri, 28 Oct 2022 08:51:53 +0200 Subject: [PATCH 01/28] [#3861] IBM Watson assistant connector backend (#3870) * connector setup * fixed types * type fix * fixes * fixes * backend for ibm working * helm chart and test * rebase * changed file names * renaming * small fix --- backend/components/ibm-watson-assistant/BUILD | 50 +++++++++ .../ibm-watson-assistant/helm/BUILD | 28 +++++ .../ibm-watson-assistant/helm/Chart.yaml | 5 + .../helm/templates/configmap.yaml | 11 ++ .../helm/templates/deployment.yaml | 85 ++++++++++++++ .../helm/templates/service.yaml | 14 +++ .../ibm-watson-assistant/helm/values.yaml | 7 ++ .../IbmWatsonAssistantClient.java | 13 +++ .../IbmWatsonAssistantClientConfig.java | 28 +++++ .../IbmWatsonAssistantConnectorService.java | 75 +++++++++++++ .../MessageHandler.java | 104 ++++++++++++++++++ .../Stores.java | 78 +++++++++++++ .../models/MessageSend.java | 19 ++++ .../models/MessageSendResponse.java | 18 +++ .../src/main/resources/application.properties | 7 ++ ...bmWatsonAssistantConnectorServiceTest.java | 91 +++++++++++++++ .../test/resources/test.properties | 11 ++ 17 files changed, 644 insertions(+) create mode 100644 backend/components/ibm-watson-assistant/BUILD create mode 100644 backend/components/ibm-watson-assistant/helm/BUILD create mode 100644 backend/components/ibm-watson-assistant/helm/Chart.yaml create mode 100644 backend/components/ibm-watson-assistant/helm/templates/configmap.yaml create mode 100644 backend/components/ibm-watson-assistant/helm/templates/deployment.yaml create mode 100644 backend/components/ibm-watson-assistant/helm/templates/service.yaml create mode 100644 backend/components/ibm-watson-assistant/helm/values.yaml create mode 100644 backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantClient.java create mode 100644 backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantClientConfig.java create mode 100644 backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantConnectorService.java create mode 100644 backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/MessageHandler.java create mode 100644 backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/Stores.java create mode 100644 backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/models/MessageSend.java create mode 100644 backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/models/MessageSendResponse.java create mode 100644 backend/components/ibm-watson-assistant/src/main/resources/application.properties create mode 100644 backend/components/ibm-watson-assistant/test/java/co/airy/core/ibm-watson-assistant_connector/IbmWatsonAssistantConnectorServiceTest.java create mode 100644 backend/components/ibm-watson-assistant/test/resources/test.properties diff --git a/backend/components/ibm-watson-assistant/BUILD b/backend/components/ibm-watson-assistant/BUILD new file mode 100644 index 0000000000..a831a6ff6b --- /dev/null +++ b/backend/components/ibm-watson-assistant/BUILD @@ -0,0 +1,50 @@ +load("//tools/build:springboot.bzl", "springboot") +load("//tools/build:junit5.bzl", "junit5") +load("//tools/build:container_release.bzl", "container_release") +load("@com_github_airyhq_bazel_tools//lint:buildifier.bzl", "check_pkg") + +check_pkg(name = "buildifier") + +app_deps = [ + "//:spring", + "//:springboot", + "//:springboot_actuator", + "//:jackson", + "//:lombok", + "//backend/model/message", + "//backend/model/metadata", + "//:feign", + "//lib/java/log", + "//lib/java/spring/kafka/core:spring-kafka-core", + "//lib/java/spring/core:spring-core", + "//lib/java/spring/kafka/streams:spring-kafka-streams", + "//lib/java/spring/async:spring-async", +] + +springboot( + name = "ibm-watson-assistant-connector", + srcs = glob(["src/main/java/**/*.java"]), + main_class = "co.airy.spring.core.AirySpringBootApplication", + deps = app_deps, +) + +[ + junit5( + size = "medium", + file = file, + resources = glob(["src/test/resources/**/*"]), + deps = [ + ":app", + "//backend:base_test", + "//lib/java/test", + "//lib/java/kafka/test:kafka-test", + "//lib/java/spring/test:spring-test", + ] + app_deps, + ) + for file in glob(["src/test/java/**/*Test.java"]) +] + +container_release( + registry = "ghcr.io/airyhq/connectors", + repository = "ibm-watson-assistant-connector", +) diff --git a/backend/components/ibm-watson-assistant/helm/BUILD b/backend/components/ibm-watson-assistant/helm/BUILD new file mode 100644 index 0000000000..1f602ed4a8 --- /dev/null +++ b/backend/components/ibm-watson-assistant/helm/BUILD @@ -0,0 +1,28 @@ +load("@rules_pkg//:pkg.bzl", "pkg_tar") +load("@com_github_airyhq_bazel_tools//helm:helm.bzl", "helm_template_test") +load("//tools/build:helm.bzl", "helm_push") + +filegroup( + name = "files", + srcs = glob( + ["**/*"], + exclude = ["BUILD"], + ), + visibility = ["//visibility:public"], +) + +pkg_tar( + name = "package", + srcs = [":files"], + extension = "tgz", + strip_prefix = "./", +) + +helm_template_test( + name = "template", + chart = ":package", +) + +helm_push( + chart = ":package", +) diff --git a/backend/components/ibm-watson-assistant/helm/Chart.yaml b/backend/components/ibm-watson-assistant/helm/Chart.yaml new file mode 100644 index 0000000000..4af9b437a4 --- /dev/null +++ b/backend/components/ibm-watson-assistant/helm/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +appVersion: "1.0" +description: A Helm chart for the IBM Watson Assistant connector +name: ibm-watson-assistant-connector +version: 1.0 diff --git a/backend/components/ibm-watson-assistant/helm/templates/configmap.yaml b/backend/components/ibm-watson-assistant/helm/templates/configmap.yaml new file mode 100644 index 0000000000..daae16661f --- /dev/null +++ b/backend/components/ibm-watson-assistant/helm/templates/configmap.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: "{{ .Values.component }}" + labels: + core.airy.co/managed: "true" + core.airy.co/mandatory: "{{ .Values.mandatory }}" + core.airy.co/component: "{{ .Values.component }}" + core.airy.co/enterprise: "false" + annotations: + core.airy.co/enabled: "{{ .Values.enabled }}" diff --git a/backend/components/ibm-watson-assistant/helm/templates/deployment.yaml b/backend/components/ibm-watson-assistant/helm/templates/deployment.yaml new file mode 100644 index 0000000000..5d67f8cc61 --- /dev/null +++ b/backend/components/ibm-watson-assistant/helm/templates/deployment.yaml @@ -0,0 +1,85 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.component }} + labels: + app: {{ .Values.component }} + core.airy.co/managed: "true" + core.airy.co/mandatory: "{{ .Values.mandatory }}" + core.airy.co/component: {{ .Values.component }} +spec: + replicas: {{ if .Values.enabled }} 1 {{ else }} 0 {{ end }} + selector: + matchLabels: + app: {{ .Values.component }} + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + labels: + app: {{ .Values.component }} + spec: + containers: + - name: app + image: "{{ .Values.global.containerRegistry}}/{{ .Values.image }}:{{ default .Chart.Version }}" + imagePullPolicy: Always + envFrom: + - configMapRef: + name: security + - configMapRef: + name: kafka-config + env: + - name: IBMWATSONASSISTANT_URL + valueFrom: + configMapKeyRef: + key: ibm-watson-assistant.URL + name: {{ .Values.component }} + - name: IBMWATSONASSISTANT_APIKEY + valueFrom: + configMapKeyRef: + key: ibm-watson-assistant.apiKey + name: {{ .Values.component }} + - name: IBMWATSONASSISTANT_ASSISTANTID + valueFrom: + configMapKeyRef: + key: ibm-watson-assistant.assistantId + name: {{ .Values.component }} + - name: SERVICE_NAME + value: {{ .Values.component }} + - name: POD_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: REQUESTED_CPU + valueFrom: + resourceFieldRef: + containerName: app + resource: requests.cpu + - name: LIMIT_CPU + valueFrom: + resourceFieldRef: + containerName: app + resource: limits.cpu + - name: LIMIT_MEMORY + valueFrom: + resourceFieldRef: + containerName: app + resource: limits.memory + livenessProbe: + httpGet: + path: /actuator/health + port: 8080 + httpHeaders: + - name: Health-Check + value: health-check + initialDelaySeconds: 60 + periodSeconds: 10 + failureThreshold: 3 + volumes: + - name: {{ .Values.component }} + configMap: + name: {{ .Values.component }} diff --git a/backend/components/ibm-watson-assistant/helm/templates/service.yaml b/backend/components/ibm-watson-assistant/helm/templates/service.yaml new file mode 100644 index 0000000000..9ecaf9eed3 --- /dev/null +++ b/backend/components/ibm-watson-assistant/helm/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: {{ .Values.component }} + name: {{ .Values.component }} +spec: + ports: + - port: 80 + protocol: TCP + targetPort: 8080 + selector: + app: {{ .Values.component }} + type: ClusterIP diff --git a/backend/components/ibm-watson-assistant/helm/values.yaml b/backend/components/ibm-watson-assistant/helm/values.yaml new file mode 100644 index 0000000000..1ae4137310 --- /dev/null +++ b/backend/components/ibm-watson-assistant/helm/values.yaml @@ -0,0 +1,7 @@ +component: ibm-watson-assistant-connector +mandatory: false +enabled: false +image: connectors/ibm-watson-assistant-connector +global: + containerRegistry: ghcr.io/airyhq +resources: {} diff --git a/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantClient.java b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantClient.java new file mode 100644 index 0000000000..57f853c76e --- /dev/null +++ b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantClient.java @@ -0,0 +1,13 @@ +package co.airy.core.ibm_watson_assistant_connector; + +import co.airy.core.ibm_watson_assistant.models.MessageSend; +import co.airy.core.ibm_watson_assistant.models.MessageSendResponse; + +import feign.RequestLine; +import feign.Headers; + +public interface IbmWatsonAssistantClient { + @RequestLine("POST") + @Headers("Content-Type: application/json") + MessageSendResponse sendMessage(MessageSend content); +} \ No newline at end of file diff --git a/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantClientConfig.java b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantClientConfig.java new file mode 100644 index 0000000000..16695606ad --- /dev/null +++ b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantClientConfig.java @@ -0,0 +1,28 @@ +package co.airy.core.ibm_watson_assistant_connector; + +import feign.Feign; +import feign.jackson.JacksonDecoder; +import feign.jackson.JacksonEncoder; +import feign.okhttp.OkHttpClient; +import feign.auth.BasicAuthRequestInterceptor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class IbmWatsonAssistantClientConfig { + @Bean + public IbmWatsonAssistantClient ibmWatsonAssistantClient(@Value("${ibm-watson-assistant.URL}") String url, + @Value("${ibm-watson-assistant.assistantId}") String assistantId, + @Value("${ibm-watson-assistant.apiKey}") String apiKey) { + return Feign.builder() + .client(new OkHttpClient()) + .encoder(new JacksonEncoder()) + .decoder(new JacksonDecoder()) + .requestInterceptor(new BasicAuthRequestInterceptor("apikey", apiKey)) + .logger(new feign.Logger.ErrorLogger()) + .logLevel(feign.Logger.Level.FULL) + .target(IbmWatsonAssistantClient.class, + String.format("%1$s/v2/assistants/%2$s/message?version=2021-06-14", url, assistantId)); + } +} diff --git a/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantConnectorService.java b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantConnectorService.java new file mode 100644 index 0000000000..b6c332d5c8 --- /dev/null +++ b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/IbmWatsonAssistantConnectorService.java @@ -0,0 +1,75 @@ +package co.airy.core.ibm_watson_assistant_connector; + +import co.airy.avro.communication.Message; +import co.airy.core.ibm_watson_assistant.models.MessageSendResponse; +import co.airy.core.ibm_watson_assistant.models.MessageSend; + +import co.airy.log.AiryLoggerFactory; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.avro.specific.SpecificRecordBase; +import org.apache.kafka.streams.KeyValue; +import org.slf4j.Logger; + +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Value; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@Service +public class IbmWatsonAssistantConnectorService { + private final IbmWatsonAssistantClient ibmWatsonAssistantClient; + + private static final ObjectMapper mapper = new ObjectMapper(); + + private static final Logger log = AiryLoggerFactory.getLogger(IbmWatsonAssistantConnectorService.class); + private final MessageHandler messageHandler; + + IbmWatsonAssistantConnectorService(MessageHandler messageHandler, + IbmWatsonAssistantClient ibmWatsonAssistantClient) { + this.messageHandler = messageHandler; + this.ibmWatsonAssistantClient = ibmWatsonAssistantClient; + } + + public List> send(Message userMessage) { + final List> result = new ArrayList<>(); + + ObjectMapper mapper = new ObjectMapper(); + final ObjectNode inputNode = mapper.createObjectNode(); + inputNode.put("message_type", "text"); + inputNode.put("text", getTextFromContent(userMessage.getContent())); + + try { + MessageSendResponse ibmWatsonAssistantResponse = this.ibmWatsonAssistantClient + .sendMessage(MessageSend.builder() + .input(inputNode) + .build()); + Message message = messageHandler.getMessage(userMessage, ibmWatsonAssistantResponse); + result.add(KeyValue.pair(message.getId(), message)); + } catch (Exception e) { + log.error(String.format("could not call the IBM Watson Assistant webhook for message id %s %s", + userMessage.getId(), e)); + } + return result; + } + + private String getTextFromContent(String content) { + String text = ""; + + try { + final JsonNode node = Optional.ofNullable(mapper.readTree(content)).orElseGet(mapper::createObjectNode); + + // NOTE: Tries to find the text context for text messages + text = Optional.ofNullable(node.findValue("text")).orElseGet(mapper::createObjectNode).asText(); + } catch (JsonProcessingException e) { + log.error(String.format("unable to parse text from content %s", content)); + } + + // NOTE: return default message when text is not found + return Optional.ofNullable(text).filter(s -> !s.isEmpty()).orElse("New message"); + } +} diff --git a/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/MessageHandler.java b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/MessageHandler.java new file mode 100644 index 0000000000..78f4cb24e9 --- /dev/null +++ b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/MessageHandler.java @@ -0,0 +1,104 @@ +package co.airy.core.ibm_watson_assistant_connector; + +import co.airy.avro.communication.DeliveryState; +import co.airy.avro.communication.Message; +import co.airy.core.ibm_watson_assistant.models.MessageSendResponse; +import co.airy.log.AiryLoggerFactory; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.node.ObjectNode; +import org.springframework.stereotype.Service; +import org.slf4j.Logger; + +import java.time.Instant; +import java.util.Map; +import java.util.UUID; + +@Service +public class MessageHandler { + private final ObjectMapper mapper = new ObjectMapper(); + private static final Logger log = AiryLoggerFactory.getLogger(MessageHandler.class); + + MessageHandler() { + } + + public Message getMessage(Message contactMessage, MessageSendResponse response) throws Exception { + String content = getContent(contactMessage.getSource(), response); + if (content == null) { + throw new Exception("Unable to map IBM Watson Assistant reply to source response."); + } + + return Message.newBuilder() + .setId(UUID.randomUUID().toString()) + .setChannelId(contactMessage.getChannelId()) + .setContent(content) + .setConversationId(contactMessage.getConversationId()) + .setHeaders(Map.of()) + .setDeliveryState(DeliveryState.PENDING) + .setSource(contactMessage.getSource()) + .setSenderId("ibm-watson-assistant-bot") + .setSentAt(Instant.now().toEpochMilli()) + .setIsFromContact(false) + .build(); + } + + public String getContent(String source, MessageSendResponse response) throws JsonProcessingException { + + try { + final JsonNode responseNode = mapper.valueToTree(response); + String text = ""; + + for (JsonNode nestedNode : responseNode.path("output").path("generic")) { + text = nestedNode.get("text").textValue(); + } + + if (text != "") { + final ObjectNode node = getNode(); + switch (source) { + case "google": { + final ObjectNode representative = getNode(); + representative.put("representativeType", "BOT"); + node.set("representative", representative); + node.put("text", text); + return mapper.writeValueAsString(node); + } + case "viber": { + node.put("text", text); + node.put("type", "text"); + return mapper.writeValueAsString(node); + } + case "chatplugin": + case "instagram": + case "facebook": { + node.put("text", text); + return mapper.writeValueAsString(node); + } + case "twilio.sms": + case "twilio.whatsapp": { + node.put("Body", text); + return mapper.writeValueAsString(node); + } + case "whatsapp": { + node.put("Body", text); + return mapper.writeValueAsString(node); + } + + default: { + return null; + } + } + } + } catch (Exception e) { + log.error(String.format("could not find the text node in the response %s %s", response.toString(), e)); + } + + return null; + } + + private ObjectNode getNode() { + final JsonNodeFactory jsonNodeFactory = JsonNodeFactory.instance; + return jsonNodeFactory.objectNode(); + } +} diff --git a/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/Stores.java b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/Stores.java new file mode 100644 index 0000000000..a329f93739 --- /dev/null +++ b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/Stores.java @@ -0,0 +1,78 @@ +package co.airy.core.ibm_watson_assistant_connector; + +import co.airy.avro.communication.Message; +import co.airy.avro.communication.Metadata; +import co.airy.kafka.schema.application.ApplicationCommunicationMessages; +import co.airy.kafka.schema.application.ApplicationCommunicationMetadata; +import co.airy.kafka.streams.KafkaStreamsWrapper; +import org.apache.kafka.streams.KafkaStreams; +import org.apache.kafka.streams.StreamsBuilder; +import org.apache.kafka.streams.Topology; +import org.apache.kafka.streams.kstream.Consumed; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.boot.actuate.health.Health; +import org.springframework.boot.actuate.health.HealthIndicator; +import org.springframework.boot.context.event.ApplicationStartedEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; +import co.airy.log.AiryLoggerFactory; +import org.slf4j.Logger; + +import static co.airy.model.message.MessageRepository.isNewMessage; + +@Component +public class Stores implements HealthIndicator, ApplicationListener, DisposableBean { + private static final String appId = "ibm-watson-assistant-connector"; + private final KafkaStreamsWrapper streams; + private IbmWatsonAssistantConnectorService ibmWatsonAssistantConnectorService; + private static final Logger log = AiryLoggerFactory.getLogger(Stores.class); + + Stores(KafkaStreamsWrapper streams, IbmWatsonAssistantConnectorService ibmWatsonAssistantConnectorService) { + this.streams = streams; + this.ibmWatsonAssistantConnectorService = ibmWatsonAssistantConnectorService; + } + + @Override + public void onApplicationEvent(ApplicationStartedEvent event) { + + final StreamsBuilder builder = new StreamsBuilder(); + + final String applicationCommunicationMetadata = new ApplicationCommunicationMetadata().name(); + final String applicationCommunicationMessages = new ApplicationCommunicationMessages().name(); + + builder.stream( + new ApplicationCommunicationMessages().name(), + Consumed.with(Topology.AutoOffsetReset.LATEST)) + .filter((messageId, message) -> message != null && isNewMessage(message) && message.getIsFromContact()) + .flatMap((messageId, message) -> ibmWatsonAssistantConnectorService.send(message)) + .to((recordId, record, context) -> { + if (record instanceof Metadata) { + return applicationCommunicationMetadata; + } + if (record instanceof Message) { + return applicationCommunicationMessages; + } + + throw new IllegalStateException("Unknown type for record " + record); + }); + + streams.start(builder.build(), appId); + } + + @Override + public void destroy() { + if (streams != null) { + streams.close(); + } + } + + @Override + public Health health() { + return Health.up().build(); + } + + // visible for testing + KafkaStreams.State getStreamState() { + return streams.state(); + } +} diff --git a/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/models/MessageSend.java b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/models/MessageSend.java new file mode 100644 index 0000000000..4308ff3aff --- /dev/null +++ b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/models/MessageSend.java @@ -0,0 +1,19 @@ +package co.airy.core.ibm_watson_assistant.models; + +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonNaming(PropertyNamingStrategies.LowerCamelCaseStrategy.class) + +public class MessageSend { + private JsonNode input; +} diff --git a/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/models/MessageSendResponse.java b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/models/MessageSendResponse.java new file mode 100644 index 0000000000..bd1e69ace2 --- /dev/null +++ b/backend/components/ibm-watson-assistant/src/main/java/co/airy/core/ibm-watson-assistant-connector/models/MessageSendResponse.java @@ -0,0 +1,18 @@ +package co.airy.core.ibm_watson_assistant.models; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonNaming(PropertyNamingStrategies.LowerCamelCaseStrategy.class) +public class MessageSendResponse { + private JsonNode output; +} diff --git a/backend/components/ibm-watson-assistant/src/main/resources/application.properties b/backend/components/ibm-watson-assistant/src/main/resources/application.properties new file mode 100644 index 0000000000..0ed7d33c3c --- /dev/null +++ b/backend/components/ibm-watson-assistant/src/main/resources/application.properties @@ -0,0 +1,7 @@ +thpool.core-pool-size=1 +thpool.max-pool-size=2 +thpool.queue-capacity=0 + +ibm-watson-assistant.URL=${IBMWATSONASSISTANT_URL} +ibm-watson-assistant.apiKey=${IBMWATSONASSISTANT_APIKEY} +ibm-watson-assistant.assistantId=${IBMWATSONASSISTANT_ASSISTANTID} diff --git a/backend/components/ibm-watson-assistant/test/java/co/airy/core/ibm-watson-assistant_connector/IbmWatsonAssistantConnectorServiceTest.java b/backend/components/ibm-watson-assistant/test/java/co/airy/core/ibm-watson-assistant_connector/IbmWatsonAssistantConnectorServiceTest.java new file mode 100644 index 0000000000..4621b986e1 --- /dev/null +++ b/backend/components/ibm-watson-assistant/test/java/co/airy/core/ibm-watson-assistant_connector/IbmWatsonAssistantConnectorServiceTest.java @@ -0,0 +1,91 @@ +package co.airy.core.ibm_watson_assistant_connector; + +import co.airy.avro.communication.DeliveryState; +import co.airy.avro.communication.Message; +import co.airy.core.cognigy.models.MessageSend; +import co.airy.kafka.schema.application.ApplicationCommunicationMessages; +import co.airy.kafka.test.KafkaTestHelper; +import co.airy.kafka.test.junit.SharedKafkaTestResource; +import co.airy.spring.core.AirySpringBootApplication; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.mockito.ArgumentCaptor; +import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import java.time.Instant; +import java.util.UUID; + +import static co.airy.test.Timing.retryOnException; +import static org.apache.kafka.streams.KafkaStreams.State.RUNNING; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.verify; + +@SpringBootTest(classes = AirySpringBootApplication.class) +@TestPropertySource(value = "classpath:test.properties") +@ExtendWith(SpringExtension.class) +@AutoConfigureMockMvc +public class IbmWatsonAssistantConnectorServiceTest { + @RegisterExtension + public static final SharedKafkaTestResource sharedKafkaTestResource = new SharedKafkaTestResource(); + public static final ApplicationCommunicationMessages applicationCommunicationMessages = new ApplicationCommunicationMessages(); + private static KafkaTestHelper kafkaTestHelper; + + @MockBean + IbmWatsonAssistantClient ibmWatsonAssistantClient; + + @Autowired + Stores stores; + + @BeforeAll + //overloads the kafkaTestHelper.beforeAll with + static void beforeAll() throws Exception { + kafkaTestHelper = new KafkaTestHelper(sharedKafkaTestResource, applicationCommunicationMessages); + kafkaTestHelper.beforeAll(); + } + + @BeforeEach + void beforeEach() throws InterruptedException { + MockitoAnnotations.openMocks(this); + retryOnException(() -> assertEquals(stores.getStreamState(), RUNNING), "Failed to reach RUNNING state."); + } + + @AfterAll + static void afterAll() throws Exception { + kafkaTestHelper.afterAll(); + } + + @Test + public void callsIbmWatsonAssistantClientSendWhenMessageIsValid() throws Exception { + //given + String textMessage = "Hello from Airy"; + sendMessage(textMessage); + //when + ArgumentCaptor messageSendArgumentCaptor = ArgumentCaptor.forClass(MessageSend.class); + //then + retryOnException(() -> { + verify(ibmWatsonAssistantClient).sendMessage(messageSendArgumentCaptor.capture()); + MessageSend sentMessage = messageSendArgumentCaptor.getValue(); + assertThat(sentMessage.getText(), equalTo(textMessage)); + }, "message was not created"); + } + + private Message sendMessage(String text) throws Exception { + final String Id = UUID.randomUUID().toString(); + final Message message = Message.newBuilder().setId(Id).setSource("test-source").setSentAt(Instant.now().toEpochMilli()).setSenderId("test-sender-id").setDeliveryState(DeliveryState.DELIVERED).setConversationId("test-conversation-id").setChannelId("test-channel-id").setContent(String.format("{\"text\": \"%s\"}", text)).setIsFromContact(true).build(); + kafkaTestHelper.produceRecord(new ProducerRecord<>(applicationCommunicationMessages.name(), Id, message)); + return message; + } +} diff --git a/backend/components/ibm-watson-assistant/test/resources/test.properties b/backend/components/ibm-watson-assistant/test/resources/test.properties new file mode 100644 index 0000000000..195f826e99 --- /dev/null +++ b/backend/components/ibm-watson-assistant/test/resources/test.properties @@ -0,0 +1,11 @@ +kafka.cleanup=true +kafka.commit-interval-ms=0 +kafka.cache.max.bytes=0 + +thpool.core-pool-size=1 +thpool.max-pool-size=1 +thpool.queue-capacity=1 + +ibm-watson-assistant.URL="https://ibm-watson-assistant/instance/id" +ibm-watson-assistant.apiKey="01a2b345678" +ibm-watson-assistant.assistantId="098765abc" From c1b257abd2f032b545c4f9d78767d9490c6f65d6 Mon Sep 17 00:00:00 2001 From: Juan Sebastian Pena Rodriguez Date: Fri, 28 Oct 2022 03:48:28 -0500 Subject: [PATCH 02/28] [#3883] Feature add pending status to components.list call (#3887) --- .../components/installer/CatalogHandler.java | 5 ++-- .../installer/InstalledComponentsHandler.java | 24 +++++++++++------ .../installer/InstallerHandler.java | 16 ++++++++--- .../InstallerHandlerCacheManager.java | 27 +++++++++++++++++++ .../installer/model/ComponentDetails.java | 4 +-- .../installer/model/InstallationStatus.java | 8 ++++++ .../src/main/resources/application.properties | 2 +- .../installer/CatalogHandlerTest.java | 6 +++-- .../installer/InstallerHandlerTest.java | 13 +++++++++ 9 files changed, 87 insertions(+), 18 deletions(-) create mode 100644 backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/InstallationStatus.java diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/CatalogHandler.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/CatalogHandler.java index 5195d4c484..c4d164007a 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/CatalogHandler.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/CatalogHandler.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import co.airy.core.api.components.installer.model.ComponentDetails; +import co.airy.core.api.components.installer.model.InstallationStatus; import co.airy.log.AiryLoggerFactory; @Service @@ -76,7 +77,7 @@ public ComponentDetails getComponentByName(String componentName) throws Exceptio private List getComponents(Function condition) throws Exception { git.pull(); - final Map installedComponents = installedComponentsHandler.getInstalledComponentsCache(); + final Map installedComponents = installedComponentsHandler.getInstalledComponentsCache(); final List components = Stream.of(repoFolder.listFiles()) .filter(f -> f.isDirectory() && !f.isHidden() && condition.apply(f.getName())) @@ -94,7 +95,7 @@ private List getComponents(Function condition return config; }) .filter(c -> c != null) - .map(c -> c.add("installed", installedComponents.getOrDefault(c.getName(), Boolean.FALSE))) + .map(c -> c.add("installationStatus", installedComponents.getOrDefault(c.getName(), InstallationStatus.uninstalled))) .collect(Collectors.toList()); return components; diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstalledComponentsHandler.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstalledComponentsHandler.java index 9d40816200..bb7399497a 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstalledComponentsHandler.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstalledComponentsHandler.java @@ -17,11 +17,13 @@ import org.springframework.stereotype.Component; import co.airy.log.AiryLoggerFactory; +import co.airy.core.api.components.installer.model.InstallationStatus; @Component public class InstalledComponentsHandler { private static final Logger log = AiryLoggerFactory.getLogger(InstallerHandler.class); + public static final String KEY = "cache-key"; private final ApiClient apiClient; private final String namespace; @@ -36,17 +38,23 @@ public class InstalledComponentsHandler { this.helmJobHandler = helmJobHandler; } - @Cacheable("installedComponents") - public Map getInstalledComponentsCache() throws Exception { + + @Cacheable(key = "#root.target.KEY", value = "installedComponents") + public Map getInstalledComponentsCache() throws Exception { return getInstalledComponents(); } - @CachePut(value = "installedComponents") - public Map putInstalledComponentsCache() throws Exception { + @CachePut(key = "#root.target.KEY", value = "installedComponents") + public Map putInstalledComponentsCache() throws Exception { return getInstalledComponents(); } - private Map getInstalledComponents() throws Exception { + @CachePut(key = "#root.target.KEY", value = "installedComponents") + public Map setInstalledComponentsCache(Map cache) throws Exception { + return cache; + } + + private Map getInstalledComponents() throws Exception { ArrayList cmd = new ArrayList<>(); cmd.add("sh"); @@ -73,9 +81,9 @@ private Map getInstalledComponents() throws Exception { null, null); - final Map installedComponents = Arrays.asList(response.getData().split("\\n")) - .stream() - .collect(Collectors.toMap(e -> e, e -> true)); + final Map installedComponents = Arrays.asList(response.getData().split("\\n")) + .stream() + .collect(Collectors.toMap(e -> e, e -> InstallationStatus.installed)); if (installedComponents == null) { throw new JobEmptyException(); diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandler.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandler.java index 132b325c2b..9ab23ab643 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandler.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandler.java @@ -25,6 +25,7 @@ import co.airy.core.api.components.installer.model.Component; import co.airy.core.api.components.installer.model.ComponentDetails; +import co.airy.core.api.components.installer.model.InstallationStatus; import co.airy.core.api.components.installer.model.Repository; import co.airy.log.AiryLoggerFactory; @@ -54,6 +55,11 @@ public class InstallerHandler { } public void installComponent(String componentName) throws Exception { + if (installerHandlerCacheManager.isInstalled(componentName)) { + log.info(String.format("component %s is already or in the process of installation", componentName)); + return; + } + final CoreV1Api api = new CoreV1Api(apiClient); final Map coreConfig = getConfigMap(api, "core-config"); final String globals = coreConfig.get("global.yaml"); @@ -65,14 +71,21 @@ public void installComponent(String componentName) throws Exception { final String jobName = String.format("helm-install-%s", componentName); helmJobHandler.launchHelmJob(jobName, cmd); + installerHandlerCacheManager.changeInstallationStatus(componentName, InstallationStatus.pending); installerHandlerCacheManager.resetCacheAfterJob(jobName); } public void uninstallComponent(String componentName) throws Exception { + if (installerHandlerCacheManager.isUninstalled(componentName)) { + log.info(String.format("component %s is already or in the process of uninstallation", componentName)); + return; + } + final List cmd = getUninstallCommand(componentName); final String jobName = String.format("helm-uninstall-%s", componentName); helmJobHandler.launchHelmJob(jobName, cmd); + installerHandlerCacheManager.changeInstallationStatus(componentName, InstallationStatus.pending); installerHandlerCacheManager.resetCacheAfterJob(jobName); } @@ -82,9 +95,6 @@ private Component getComponentFromName( String version) throws Exception { ComponentDetails componentDetails = catalogHandler.getComponentByName(componentName); - if (componentDetails.isInstalled()) { - throw new Exception("Already installed"); - } final Repository repo = repositories.get(componentDetails.getRepository()); if (repo == null) { diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandlerCacheManager.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandlerCacheManager.java index eb0f84336e..8398c890e0 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandlerCacheManager.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandlerCacheManager.java @@ -4,11 +4,14 @@ import io.kubernetes.client.openapi.apis.CoreV1Api; import io.kubernetes.client.openapi.models.V1Job; +import java.util.Map; + import org.slf4j.Logger; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import co.airy.log.AiryLoggerFactory; +import co.airy.core.api.components.installer.model.InstallationStatus; @Component public class InstallerHandlerCacheManager { @@ -41,4 +44,28 @@ public void resetCacheAfterJob(String jobName) { log.error("unable to reset cache", e); } } + + public void changeInstallationStatus(String componentName, String status) throws Exception { + Map cacheStore = installedComponentsHandler.getInstalledComponentsCache(); + cacheStore.put(componentName, status); + installedComponentsHandler.setInstalledComponentsCache(cacheStore); + } + + public boolean isInstalled(String componentName) throws Exception { + final String installationStatus = installedComponentsHandler + .getInstalledComponentsCache() + .getOrDefault(componentName, InstallationStatus.uninstalled); + + return installationStatus.equals(InstallationStatus.installed) + || installationStatus.equals(InstallationStatus.pending); + } + + public boolean isUninstalled(String componentName) throws Exception { + final String installationStatus = installedComponentsHandler + .getInstalledComponentsCache() + .getOrDefault(componentName, InstallationStatus.uninstalled); + + return installationStatus.equals(InstallationStatus.uninstalled) + || installationStatus.equals(InstallationStatus.pending); + } } diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/ComponentDetails.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/ComponentDetails.java index 322280969d..50b5549e63 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/ComponentDetails.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/ComponentDetails.java @@ -33,8 +33,8 @@ public String getRepository() { return (String) props.getOrDefault("repository", ""); } - public boolean isInstalled() { - return (boolean) props.getOrDefault("installed", false); + public String getInstallationStatus() { + return (String) props.getOrDefault("installationStatus", InstallationStatus.uninstalled); } public static Map componentsDetailsListToMap(List componentsDetails) { diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/InstallationStatus.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/InstallationStatus.java new file mode 100644 index 0000000000..7831b61484 --- /dev/null +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/InstallationStatus.java @@ -0,0 +1,8 @@ +package co.airy.core.api.components.installer.model; + + +public class InstallationStatus { + public static final String installed = "installed"; + public static final String pending = "pending"; + public static final String uninstalled = "uninstalled"; +} diff --git a/backend/components/installer/src/main/resources/application.properties b/backend/components/installer/src/main/resources/application.properties index c946d66392..fe4b81e79b 100644 --- a/backend/components/installer/src/main/resources/application.properties +++ b/backend/components/installer/src/main/resources/application.properties @@ -7,5 +7,5 @@ thpool.core-pool-size=${REQUESTED_CPU} thpool.max-pool-size=${LIMIT_CPU} thpool.queue-capacity=${QUEUE_CAPACITY:0} -retry.maxAttempts=${RETRY_MAX_ATTEMPTS:20} +retry.maxAttempts=${RETRY_MAX_ATTEMPTS:200} retry.maxDelay=${RETRY_MAX_DELAY:500} diff --git a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/CatalogHandlerTest.java b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/CatalogHandlerTest.java index 5368e84fdf..bd57cb794a 100644 --- a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/CatalogHandlerTest.java +++ b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/CatalogHandlerTest.java @@ -47,6 +47,8 @@ import org.junit.jupiter.api.BeforeAll; import org.springframework.test.context.junit.jupiter.SpringExtension; +import co.airy.core.api.components.installer.model.InstallationStatus; + @ContextConfiguration(loader = AnnotationConfigContextLoader.class) @SpringBootTest(classes = AirySpringBootApplication.class) @TestPropertySource(value = "classpath:test.properties") @@ -137,7 +139,7 @@ public void canGetComponents(@TempDir File tempDir) throws Exception { .findAny() .orElse(null); assertThat(enterpriseSalesforceContactsIngestion, is(notNullValue())); - assertThat(enterpriseSalesforceContactsIngestion.isInstalled(), is(true)); + assertThat(enterpriseSalesforceContactsIngestion.getInstallationStatus(), equalTo(InstallationStatus.installed)); ComponentDetails cognigyConnector = listComponents .stream() @@ -145,7 +147,7 @@ public void canGetComponents(@TempDir File tempDir) throws Exception { .findAny() .orElse(null); assertThat(cognigyConnector, is(notNullValue())); - assertThat(cognigyConnector.isInstalled(), is(false)); + assertThat(cognigyConnector.getInstallationStatus(), equalTo(InstallationStatus.uninstalled)); } } diff --git a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallerHandlerTest.java b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallerHandlerTest.java index 7760a4e21e..42ab8cc428 100644 --- a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallerHandlerTest.java +++ b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallerHandlerTest.java @@ -30,6 +30,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import java.nio.charset.StandardCharsets; @@ -41,6 +42,8 @@ import org.junit.jupiter.api.BeforeAll; import org.springframework.test.context.junit.jupiter.SpringExtension; +import co.airy.core.api.components.installer.model.InstallationStatus; + @ContextConfiguration(loader = AnnotationConfigContextLoader.class) @SpringBootTest(classes = AirySpringBootApplication.class) @TestPropertySource(value = "classpath:test.properties") @@ -62,6 +65,9 @@ public class InstallerHandlerTest { @MockBean private CatalogHandler catalogHandler; + @MockBean + private InstallerHandlerCacheManager installerHandlerCacheManager; + @Autowired private InstallerHandler installerHandler; @@ -89,6 +95,9 @@ public void canInstallComponent() throws Exception { .add("installed", false); doReturn(sourcesChatplugin).when(catalogHandler).getComponentByName("sources-chatplugin"); + doReturn(false).when(installerHandlerCacheManager).isInstalled("sources-chatplugin"); + doNothing().when(installerHandlerCacheManager).changeInstallationStatus("sources-chatplugin", InstallationStatus.pending); + doNothing().when(installerHandlerCacheManager).resetCacheAfterJob("helm-install-sources-chatplugin"); final MockedConstruction.MockInitializer fn = (mock, context) -> { final ApiResponse coreConfigResponse = new ApiResponse<>( @@ -130,6 +139,10 @@ public void canUninstallComponent() throws Exception { eq("helm-uninstall-enterprise-dialogflow-connector"), cmd.capture()); + doReturn(false).when(installerHandlerCacheManager).isUninstalled("enterprise-dialogflow-connector"); + doNothing().when(installerHandlerCacheManager).changeInstallationStatus("enterprise-dialogflow-connector", InstallationStatus.pending); + doNothing().when(installerHandlerCacheManager).resetCacheAfterJob("helm-install-enterprise-dialogflow-connector"); + installerHandler.uninstallComponent("enterprise-dialogflow-connector"); assertThat(cmd.getValue().size(), equalTo(3)); From 35605a3dfa74197dba21a7d0ef06062c4a5f09fc Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Fri, 28 Oct 2022 11:25:34 +0200 Subject: [PATCH 03/28] [#3885] channels flow fix (#3891) --- .../Connectors/ChannelCard/index.module.scss | 2 +- .../src/pages/Connectors/ChannelCard/index.tsx | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss b/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss index 0cee812f3c..e5c69b73e4 100644 --- a/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss @@ -52,7 +52,7 @@ align-items: center; margin-bottom: 14px; - span { + p { color: var(--color-airy-blue); margin-right: 4px; text-decoration: underline; diff --git a/frontend/control-center/src/pages/Connectors/ChannelCard/index.tsx b/frontend/control-center/src/pages/Connectors/ChannelCard/index.tsx index 1f4aa933d3..9f28f3cf3c 100644 --- a/frontend/control-center/src/pages/Connectors/ChannelCard/index.tsx +++ b/frontend/control-center/src/pages/Connectors/ChannelCard/index.tsx @@ -27,6 +27,19 @@ export const ChannelCard = (props: ChannelCardProps) => { componentInfo.isConfigured ); + const configuredComponent = componentStatus !== ComponentStatus.notConfigured; + + const ChannelsMention = () => { + return ( + <> +

+ {channelsToShow} {configuredComponent && channelsToShow === 1 ? t('channel') : t('channels')} +

+ + + ); + }; + return (
{ @@ -42,10 +55,7 @@ export const ChannelCard = (props: ChannelCardProps) => {
{componentStatus && } - - {channelsToShow} {channelsToShow === 1 ? t('channel') : t('channels')} - - + {configuredComponent && }
From 906a0520e69400cb0c83a58e8094a408ebb07f9d Mon Sep 17 00:00:00 2001 From: Bilge <116078532+bilge-cakmak@users.noreply.github.com> Date: Mon, 31 Oct 2022 09:47:05 +0100 Subject: [PATCH 04/28] [#3645] Airy terraform deployment on GKE (#3888) * working on airy core terrafrom deployment * [3645]Terraform deployment for airy-core on gcp-gke * [#3645] Airy core terraform deployment on gcp-gke * [#3645] Airy core terraform deployment on gcp-gke * [#3645] Airy core terraform deployment on gcp-gke * working on airy core terraform deployment * [#3645] Airy Terraform deployment on GKE (#3888) --- .../terraform/install/gcp-gke/main.tf | 5 ++++- .../terraform/install/gcp-gke/outputs.tf | 7 +++++++ .../terraform/install/gcp-gke/state.tf | 5 +++++ .../terraform/install/gcp-gke/variables.tf | 18 +++++++++++++++++- .../terraform/modules/gcp-gke/main.tf | 2 +- .../terraform/modules/gcp-gke/outputs.tf | 7 +++++++ .../terraform/modules/gcp-gke/variables.tf | 2 +- 7 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 infrastructure/terraform/install/gcp-gke/outputs.tf create mode 100644 infrastructure/terraform/install/gcp-gke/state.tf diff --git a/infrastructure/terraform/install/gcp-gke/main.tf b/infrastructure/terraform/install/gcp-gke/main.tf index 053094faf4..530ed4e68b 100644 --- a/infrastructure/terraform/install/gcp-gke/main.tf +++ b/infrastructure/terraform/install/gcp-gke/main.tf @@ -3,4 +3,7 @@ module "gcp-gke" { project_id = var.project_id region = var.region -} + gke_name = var.cluster_name + vpc_name = var.vpc_name + gke_node_locations = var.gke_node_locations +} \ No newline at end of file diff --git a/infrastructure/terraform/install/gcp-gke/outputs.tf b/infrastructure/terraform/install/gcp-gke/outputs.tf new file mode 100644 index 0000000000..d3d1837a61 --- /dev/null +++ b/infrastructure/terraform/install/gcp-gke/outputs.tf @@ -0,0 +1,7 @@ +output "cluster_name" { + value = module.gcp-gke.kubernetes_cluster_name +} + +output "kubeconfig_path" { + value = module.gcp-gke.kubeconfig_output_path +} diff --git a/infrastructure/terraform/install/gcp-gke/state.tf b/infrastructure/terraform/install/gcp-gke/state.tf new file mode 100644 index 0000000000..d00d9b3e08 --- /dev/null +++ b/infrastructure/terraform/install/gcp-gke/state.tf @@ -0,0 +1,5 @@ +terraform { + backend "local" { + path = "../kubernetes.tfstate" + } +} \ No newline at end of file diff --git a/infrastructure/terraform/install/gcp-gke/variables.tf b/infrastructure/terraform/install/gcp-gke/variables.tf index 45c07cba57..ecea61e14f 100644 --- a/infrastructure/terraform/install/gcp-gke/variables.tf +++ b/infrastructure/terraform/install/gcp-gke/variables.tf @@ -2,7 +2,23 @@ variable "project_id" { default = "airy-core" description = "The project is airy-core" } + variable "region" { default = "us-central1" description = "The region is us-central1" -} \ No newline at end of file +} + +variable "cluster_name" { + description = "The name of the created GKE cluster" + default = "airy-gke" +} + +variable "vpc_name" { + default = "core-vpc" + description = "The name of the created VPC" +} + +variable "gke_node_locations" { + default = ["us-central1-b", "us-central1-c", "us-central1-f"] + description = "The list of zones in which the node pool's nodes should be located" +} diff --git a/infrastructure/terraform/modules/gcp-gke/main.tf b/infrastructure/terraform/modules/gcp-gke/main.tf index ad0854690d..f4c7a84a99 100644 --- a/infrastructure/terraform/modules/gcp-gke/main.tf +++ b/infrastructure/terraform/modules/gcp-gke/main.tf @@ -13,6 +13,7 @@ resource "google_container_cluster" "gke_core" { remove_default_node_pool = true initial_node_count = 1 network = google_compute_network.vpc.name + } resource "google_container_node_pool" "gke_core_nodes" { @@ -38,7 +39,6 @@ resource "google_container_node_pool" "gke_core_nodes" { labels = { env = var.project_id } - } depends_on = [resource.google_container_cluster.gke_core] diff --git a/infrastructure/terraform/modules/gcp-gke/outputs.tf b/infrastructure/terraform/modules/gcp-gke/outputs.tf index ac66cc9f4e..0f504b8135 100644 --- a/infrastructure/terraform/modules/gcp-gke/outputs.tf +++ b/infrastructure/terraform/modules/gcp-gke/outputs.tf @@ -2,7 +2,14 @@ output "kubernetes_cluster_name" { value = google_container_cluster.gke_core.name description = "GKE Cluster Name" } + output "kubeconfig_raw" { sensitive = true value = module.gke_auth.kubeconfig_raw } + +output "kubeconfig_output_path" { + value = var.kubeconfig_output_path +} + + diff --git a/infrastructure/terraform/modules/gcp-gke/variables.tf b/infrastructure/terraform/modules/gcp-gke/variables.tf index fe79619f77..66f21ae80b 100644 --- a/infrastructure/terraform/modules/gcp-gke/variables.tf +++ b/infrastructure/terraform/modules/gcp-gke/variables.tf @@ -36,4 +36,4 @@ variable "kubeconfig_output_path" { variable "gke_instance_type" { default = "n1-standard-2" description = "The type of the instances in the node pool" -} +} \ No newline at end of file From 22363a105fc1f7c640b9298b8915191715b98f57 Mon Sep 17 00:00:00 2001 From: Bilge Date: Mon, 31 Oct 2022 10:19:27 +0100 Subject: [PATCH 05/28] Bump version to 0.52.0-alpha --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index c5d4cee36a..601104cb82 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.51.0 +0.52.0-alpha From 118541cd683ec3a314a855a79aed65bc9e838bbc Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Mon, 31 Oct 2022 15:34:11 +0100 Subject: [PATCH 06/28] [#3894] fixes for ibm watson assistant (#3898) * fixes for ibm watson assistant * fixes for ibm watson --- .../src/components/ChannelAvatar/index.tsx | 2 +- .../SetConfigInputs/SetConfigInputs.tsx | 12 +++++++-- lib/typescript/model/Source.ts | 2 +- lib/typescript/translations/translations.ts | 26 ++++++++++++++++++- 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/frontend/control-center/src/components/ChannelAvatar/index.tsx b/frontend/control-center/src/components/ChannelAvatar/index.tsx index 04173fc99c..9b6f39ca90 100644 --- a/frontend/control-center/src/components/ChannelAvatar/index.tsx +++ b/frontend/control-center/src/components/ChannelAvatar/index.tsx @@ -79,7 +79,7 @@ export const getChannelAvatar = (source: string) => { case Source.amazons3: case 'Amazon S3': return ; - case Source.ibm: + case Source.ibmWatsonAssistant: case 'IBM Watson Assistant': return ; default: diff --git a/frontend/control-center/src/pages/Connectors/ConfigureConnector/SetConfigInputs/SetConfigInputs.tsx b/frontend/control-center/src/pages/Connectors/ConfigureConnector/SetConfigInputs/SetConfigInputs.tsx index 26da3ec22a..6b373f8028 100644 --- a/frontend/control-center/src/pages/Connectors/ConfigureConnector/SetConfigInputs/SetConfigInputs.tsx +++ b/frontend/control-center/src/pages/Connectors/ConfigureConnector/SetConfigInputs/SetConfigInputs.tsx @@ -30,7 +30,9 @@ export const SetConfigInputs = (props: SetConfigInputsProps) => { if (key.includes('URL')) { key = key.replace('URL', 'Url'); - } else if (key.includes('API')) { + } + + if (key.includes('API')) { key = key.replace('API', 'Api'); } @@ -38,10 +40,16 @@ export const SetConfigInputs = (props: SetConfigInputsProps) => { if (replacedKey.includes('Url')) { replacedKey = replacedKey.replace('Url', 'URL'); - } else if (key.includes('Api')) { + } + + if (replacedKey.includes('Api')) { replacedKey = replacedKey.replace('Api', 'API'); } + if (replacedKey.includes('ibm')) { + replacedKey = replacedKey.replace('ibm', 'IBM'); + } + const label = replacedKey.charAt(0).toUpperCase() + replacedKey.slice(1); const placeholder = `${replacedKey.charAt(0).toUpperCase() + replacedKey.slice(1)}`; const capitalSource = source?.charAt(0).toUpperCase() + source?.slice(1).replace('.', ''); diff --git a/lib/typescript/model/Source.ts b/lib/typescript/model/Source.ts index bdb6831716..0656856d6b 100644 --- a/lib/typescript/model/Source.ts +++ b/lib/typescript/model/Source.ts @@ -17,7 +17,7 @@ export enum Source { mobile = 'mobile', whatsapp = 'whatsapp', frontendInbox = 'frontend-inbox', - ibm = 'ibm', + ibmWatsonAssistant = 'ibmWatsonAssistant', amazons3 = 'amazons3', } diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index d5eeb2a733..1932f65284 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -436,6 +436,12 @@ const resources = { inputTooltipCognigyCognigyRestEndpointURL: 'REST Endpoint URL', inputTooltipCognigyCognigyUserId: 'User ID', + //IBM Watson Assistant + ibmWatsonAssistantDescription: 'Conversational AI For Business', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantURL: 'URL', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantApiKey: 'API key', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantAssistantId: 'Assistant Id', + //Rasa rasaDescription: 'Open source conversational AI.', @@ -928,6 +934,12 @@ const resources = { inputTooltipCognigyCognigyRestEndpointURL: 'REST Endpunkt-URL', inputTooltipCognigyCognigyUserId: 'Benutzer-ID', + //IBM Watson Assistant + ibmWatsonAssistantDescription: 'Konversations-KI für Unternehmen', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantURL: 'Ihre URL', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantApiKey: 'API-Schlüssel', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantAssistantId: 'Assistenten-ID', + //Rasa rasaDescription: 'Open-Source-Gesprächs-KI.', @@ -1538,6 +1550,12 @@ const resources = { inputTooltipCognigyCognigyRestEndpointURL: 'URL Endpoint REST', inputTooltipCognigyCognigyUserId: "ID d'utilisateur", + //IBM Watson Assistant + ibmWatsonAssistantDescription: "L'IA conversationnelle pour les entreprises", + inputTooltipIbmWatsonAssistantIbmWatsonAssistantURL: 'URL', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantApiKey: 'clé API', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantAssistantId: "ID de l'assistant", + //Rasa rasaDescription: 'IA conversationnelle open source.', @@ -2090,10 +2108,16 @@ const resources = { whatsappPhoneNumberIdTooltip: 'Añada su número de teléfono', //Cognigy.AI - cognigyDescription: 'Una interfaz de usuario de código bajo para IA conversacional.', + cognigyDescription: 'Una interfaz de usuario de código bajo para IA conversacional', inputTooltipCognigyCognigyRestEndpointURL: 'URL del Endpoint REST', inputTooltipCognigyCognigyUserId: 'ID de usuario', + //IBM Watson Assistant + ibmWatsonAssistantDescription: 'IA conversacional para las empresas', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantURL: 'URL', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantApiKey: 'clave API', + inputTooltipIbmWatsonAssistantIbmWatsonAssistantAssistantId: 'ID del asistente', + //Rasa rasaDescription: 'IA conversacional Open Source.', From 927ff4a9cece271c520d724166f2d444cff2d573 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 09:58:27 +0100 Subject: [PATCH 07/28] Bump jest-environment-jsdom from 29.2.0 to 29.2.2 (#3896) Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 29.2.0 to 29.2.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.2.2/packages/jest-environment-jsdom) --- updated-dependencies: - dependency-name: jest-environment-jsdom dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 98 ++++++++++++++++++++++++++-------------------------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index a59dbcd2ad..613cf07ce9 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "html-webpack-plugin": "^5.5.0", "identity-obj-proxy": "^3.0.0", "jest": "^28.1.3", - "jest-environment-jsdom": "^29.2.0", + "jest-environment-jsdom": "^29.2.2", "minimist": "^1.2.7", "prettier": "^2.7.1", "react-hot-loader": "^4.13.0", diff --git a/yarn.lock b/yarn.lock index 289fbfb865..c3d0d8fe32 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1303,15 +1303,15 @@ "@types/node" "*" jest-mock "^28.1.3" -"@jest/environment@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.0.tgz#7e5604e4ead098572056a962a970f3d79379fbd8" - integrity sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q== +"@jest/environment@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0" + integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A== dependencies: - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/fake-timers" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.0" + jest-mock "^29.2.2" "@jest/expect-utils@^28.1.3": version "28.1.3" @@ -1340,17 +1340,17 @@ jest-mock "^28.1.3" jest-util "^28.1.3" -"@jest/fake-timers@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.0.tgz#e43635c1bd73b23886e80ca12307092ef2ee1929" - integrity sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw== +"@jest/fake-timers@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340" + integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.2.0" - jest-mock "^29.2.0" - jest-util "^29.2.0" + jest-message-util "^29.2.1" + jest-mock "^29.2.2" + jest-util "^29.2.1" "@jest/globals@^28.1.3": version "28.1.3" @@ -1489,10 +1489,10 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.0.tgz#c0d1ef8bc1e4f4b358e7877e34157371e7881b0b" - integrity sha512-mfgpQz4Z2xGo37m6KD8xEpKelaVzvYVRijmLPePn9pxgaPEtX+SqIyPNzzoeCPXKYbB4L/wYSgXDL8o3Gop78Q== +"@jest/types@^29.2.0", "@jest/types@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" + integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -5424,18 +5424,18 @@ jest-each@^28.1.3: jest-util "^28.1.3" pretty-format "^28.1.3" -jest-environment-jsdom@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.0.tgz#a45aa6bb8737e7ab93ebb9111c7e5b1c9ae6aa51" - integrity sha512-DgHbBxC4RmHpDLFLMt00NjXXimGvtNALRyxQYOo3e6vwq1qsIDqXsEZiuEpjTg0BueENE1mx8BKFKHXArEdRQQ== +jest-environment-jsdom@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.2.tgz#1e2d9f1f017fbaa7362a83e670b569158b4b8527" + integrity sha512-5mNtTcky1+RYv9kxkwMwt7fkzyX4EJUarV7iI+NQLigpV4Hz4sgfOdP4kOpCHXbkRWErV7tgXoXLm2CKtucr+A== dependencies: - "@jest/environment" "^29.2.0" - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" + "@jest/types" "^29.2.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.2.0" - jest-util "^29.2.0" + jest-mock "^29.2.2" + jest-util "^29.2.1" jsdom "^20.0.0" jest-environment-node@^28.1.3: @@ -5526,18 +5526,18 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.0.tgz#cbd43fd9a20a8facd4267ac37556bc5c9a525ec0" - integrity sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg== +jest-message-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" + integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" @@ -5549,14 +5549,14 @@ jest-mock@^28.1.3: "@jest/types" "^28.1.3" "@types/node" "*" -jest-mock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.0.tgz#3531012881178f59f4b5fd1e243acc329d08d6a1" - integrity sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg== +jest-mock@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7" + integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-util "^29.2.0" + jest-util "^29.2.1" jest-pnp-resolver@^1.2.2: version "1.2.2" @@ -5692,12 +5692,12 @@ jest-util@^28.0.0, jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.0.tgz#797935697e83a5722aeba401ed6cd01264295566" - integrity sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw== +jest-util@^29.2.0, jest-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" + integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -6982,10 +6982,10 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.0.tgz#1d4ea56fb46079b44efd9ed59c14f70f2950a61b" - integrity sha512-QCSUFdwOi924g24czhOH5eTkXxUCqlLGZBRCySlwDYHIXRJkdGyjJc9nZaqhlFBZws8dq5Dvk0lCilsmlfsPxw== +pretty-format@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" + integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From 0d5f1e9600458eb5fecd87afbd4545d65ad92080 Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Tue, 1 Nov 2022 12:04:30 +0100 Subject: [PATCH 08/28] [#3886] fixed status page error (#3903) * fixed status page error * removed logs --- frontend/control-center/src/pages/Status/index.tsx | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/frontend/control-center/src/pages/Status/index.tsx b/frontend/control-center/src/pages/Status/index.tsx index c386bc2606..6da03d4216 100644 --- a/frontend/control-center/src/pages/Status/index.tsx +++ b/frontend/control-center/src/pages/Status/index.tsx @@ -62,17 +62,6 @@ const Status = (props: ConnectedProps) => { setSpinAnim(!spinAnim); }; - const formatToComponentName = (name: string) => { - let formattedName; - if (name.includes('enterprise')) { - formattedName = `airy-enterprise/${name}`; - } else { - formattedName = `airy-core/${name}`; - } - - return formattedName; - }; - return (
@@ -96,8 +85,7 @@ const Status = (props: ConnectedProps) => {
{Object.entries(catalog).length > 0 && components.map((component, index) => { - const formattedName = formatToComponentName(component[0]); - const catalogItem = catalog[formattedName]; + const catalogItem = catalog[component[0]]; return ( Date: Thu, 3 Nov 2022 09:54:55 +0100 Subject: [PATCH 09/28] [#3878] Adding Loading indicators to control-center (#3906) --- bazel.tsconfig.json | 1 + frontend/control-center/BUILD | 2 + frontend/control-center/src/App.tsx | 24 +- .../src/components/ChannelAvatar/index.tsx | 4 + .../src/components/Sidebar/index.tsx | 4 +- .../Catalog/CatalogCard/index.module.scss | 13 +- .../src/pages/Catalog/CatalogCard/index.tsx | 235 +- .../Catalog/CatalogItemDetails/index.tsx | 83 +- .../FilterCatalogModal.module.scss | 1 + .../src/pages/Catalog/index.tsx | 141 +- .../Connectors/ChannelCard/index.module.scss | 2 +- .../Connectors/InfoCard/index.module.scss | 2 +- .../src/pages/Connectors/index.module.scss | 2 +- .../src/pages/Connectors/index.tsx | 38 +- .../control-center/src/pages/Status/index.tsx | 57 +- .../Webhooks/EmptyState/index.module.scss | 2 +- .../src/pages/Webhooks/EmptyState/index.tsx | 33 +- .../src/pages/Webhooks/index.tsx | 64 +- .../src/reducers/data/catalog/index.ts | 4 +- .../src/selectors/connectors.ts | 6 +- .../assets/images/icons/amazonLexV2Logo.svg | 1 + lib/typescript/components/BUILD | 2 + .../NotificationComponent/index.module.scss | 3 + .../components/loaders/AiryLoader/data.json | 3618 +++++++++++++++++ .../loaders/AiryLoader/index.module.scss | 0 .../components/loaders/AiryLoader/index.tsx | 59 + .../loaders/InstallerLoader/index.module.scss | 20 + .../loaders/InstallerLoader/index.tsx | 63 + .../InstallerLoader/spinnerLoader.json | 1 + lib/typescript/components/loaders/index.ts | 2 + .../components/tooltip/index.module.scss | 1 + lib/typescript/components/tooltip/index.tsx | 35 +- lib/typescript/model/Components.ts | 3 +- lib/typescript/model/Connectors.ts | 9 +- lib/typescript/model/Source.ts | 1 + lib/typescript/translations/translations.ts | 19 + package.json | 2 + yarn.lock | 2056 +++++----- 38 files changed, 5363 insertions(+), 1250 deletions(-) create mode 100644 lib/typescript/assets/images/icons/amazonLexV2Logo.svg create mode 100644 lib/typescript/components/loaders/AiryLoader/data.json create mode 100644 lib/typescript/components/loaders/AiryLoader/index.module.scss create mode 100644 lib/typescript/components/loaders/AiryLoader/index.tsx create mode 100644 lib/typescript/components/loaders/InstallerLoader/index.module.scss create mode 100644 lib/typescript/components/loaders/InstallerLoader/index.tsx create mode 100644 lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json diff --git a/bazel.tsconfig.json b/bazel.tsconfig.json index 0836888a4c..d335b62517 100644 --- a/bazel.tsconfig.json +++ b/bazel.tsconfig.json @@ -16,6 +16,7 @@ "preserveConstEnums": true, "isolatedModules": false, "module": "commonjs", + "resolveJsonModule": true, "sourceMap": true, "jsx": "react", "paths": { diff --git a/frontend/control-center/BUILD b/frontend/control-center/BUILD index 0de7da3951..b191c90f77 100644 --- a/frontend/control-center/BUILD +++ b/frontend/control-center/BUILD @@ -30,6 +30,8 @@ ts_web_library( "@npm//@types/lodash-es", "@npm//@types/dom-mediacapture-record", "@npm//lodash-es", + "@npm//react-lottie", + "@npm//@types/react-lottie", "@npm//react", "@npm//react-router-dom", "@npm//redux", diff --git a/frontend/control-center/src/App.tsx b/frontend/control-center/src/App.tsx index f17139b061..b13e6dcbb6 100644 --- a/frontend/control-center/src/App.tsx +++ b/frontend/control-center/src/App.tsx @@ -4,7 +4,7 @@ import TopBar from './components/TopBar'; import Sidebar from './components/Sidebar'; import styles from './App.module.scss'; import {getClientConfig} from './actions/config'; -import {Navigate, Route, Routes} from 'react-router-dom'; +import {Navigate, Route, Routes, useLocation} from 'react-router-dom'; import {INBOX_ROUTE, CATALOG_ROUTE, CONNECTORS_ROUTE, ROOT_ROUTE, STATUS_ROUTE, WEBHOOKS_ROUTE} from './routes/routes'; import NotFound from './pages/NotFound'; import ConnectorsOutlet from './pages/Connectors/ConnectorsOutlet'; @@ -16,21 +16,41 @@ import Status from './pages/Status'; import Inbox from './pages/Inbox'; import ConnectorConfig from './pages/Connectors/ConnectorConfig'; import CatalogProductPage from './pages/Catalog/CatalogItemDetails'; +import {getConnectorsConfiguration, listChannels, listComponents} from './actions'; const mapDispatchToProps = { getClientConfig, + listChannels, + getConnectorsConfiguration, + listComponents, }; const connector = connect(null, mapDispatchToProps); const App = (props: ConnectedProps) => { + const location = useLocation(); + useEffect(() => { - props.getClientConfig(); + props.getClientConfig().catch((error: Error) => { + console.error(error); + }); if (localStorage.getItem('theme') === 'dark') { document.documentElement.setAttribute('data-theme', 'dark'); } }, []); + useEffect(() => { + props.listChannels().catch((error: Error) => { + console.error(error); + }); + props.getConnectorsConfiguration().catch((error: Error) => { + console.error(error); + }); + props.listComponents().catch((error: Error) => { + console.error(error); + }); + }, [location]); + return (
diff --git a/frontend/control-center/src/components/ChannelAvatar/index.tsx b/frontend/control-center/src/components/ChannelAvatar/index.tsx index 9b6f39ca90..1e13ede728 100644 --- a/frontend/control-center/src/components/ChannelAvatar/index.tsx +++ b/frontend/control-center/src/components/ChannelAvatar/index.tsx @@ -14,6 +14,7 @@ import {ReactComponent as CognigyAvatar} from 'assets/images/icons/cognigyLogo.s import {ReactComponent as RasaAvatar} from 'assets/images/icons/rasaLogo.svg'; import {ReactComponent as AmeliaAvatar} from 'assets/images/icons/ameliaLogo.svg'; import {ReactComponent as AmazonS3Avatar} from 'assets/images/icons/amazons3Logo.svg'; +import {ReactComponent as AmazonLexV2Avatar} from 'assets/images/icons/amazonLexV2Logo.svg'; import {ReactComponent as IbmWatsonAssistantAvatar} from 'assets/images/icons/ibmWatsonAssistantLogo.svg'; import {Channel, Source} from 'model'; @@ -79,6 +80,9 @@ export const getChannelAvatar = (source: string) => { case Source.amazons3: case 'Amazon S3': return ; + case Source.amazonLexV2: + case 'Amazon LEX V2': + return ; case Source.ibmWatsonAssistant: case 'IBM Watson Assistant': return ; diff --git a/frontend/control-center/src/components/Sidebar/index.tsx b/frontend/control-center/src/components/Sidebar/index.tsx index c8949b400b..32904d1eb5 100644 --- a/frontend/control-center/src/components/Sidebar/index.tsx +++ b/frontend/control-center/src/components/Sidebar/index.tsx @@ -4,7 +4,7 @@ import {useMatch} from 'react-router'; import {connect, ConnectedProps} from 'react-redux'; import {StateModel} from '../../reducers'; import {useCurrentComponentForSource} from '../../selectors'; -import {Source} from 'model'; +import {InstallationStatus, Source} from 'model'; import {CATALOG_ROUTE, CONNECTORS_ROUTE, INBOX_ROUTE, STATUS_ROUTE, WEBHOOKS_ROUTE} from '../../routes/routes'; import {ReactComponent as ConnectorsIcon} from 'assets/images/icons/gitMerge.svg'; @@ -27,7 +27,7 @@ const Sidebar = (props: SideBarProps) => { const {version, components} = props; const componentInfo = useCurrentComponentForSource(Source.webhooks); - const webhooksEnabled = componentInfo.installed; + const webhooksEnabled = componentInfo.installationStatus === InstallationStatus.installed; const inboxEnabled = components[Source.frontendInbox]?.enabled || false; const showLine = inboxEnabled || webhooksEnabled; diff --git a/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss b/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss index 16347deeb9..213a4e8110 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss +++ b/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss @@ -5,8 +5,6 @@ .catalogCard { width: 340px; height: 248px; - margin-bottom: 28px; - margin-right: 36px; padding: 0px 12px 0px 20px; display: flex; flex-direction: column; @@ -16,6 +14,9 @@ outline: 2px solid transparent; @include font-s; transition: all 0.1s; + z-index: -1; + position: relative; + pointer-events: all; &:hover { outline: 2px solid var(--color-airy-blue); @@ -24,6 +25,14 @@ } } +.installerLoaderWrapper { + position: relative; + z-index: 1; + &:hover { + z-index: 2; + } +} + .cardLogoTitleContainer { display: flex; align-items: flex-start; diff --git a/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx b/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx index 9ec1062f33..682b1428f4 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx +++ b/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx @@ -1,11 +1,11 @@ -import React, {useRef, useState} from 'react'; +import React, {Dispatch, SetStateAction, useEffect, useRef, useState} from 'react'; import {useNavigate} from 'react-router-dom'; import {useTranslation} from 'react-i18next'; import {connect, ConnectedProps} from 'react-redux'; import {StateModel} from '../../../reducers'; import {installComponent} from '../../../actions/catalog'; -import {ComponentInfo, ConnectorPrice, NotificationModel} from 'model'; -import {Button, NotificationComponent, SettingsModal, SmartButton} from 'components'; +import {ComponentInfo, ConnectorPrice, InstallationStatus, NotificationModel} from 'model'; +import {Button, NotificationComponent, SettingsModal, Tooltip} from 'components'; import {getChannelAvatar} from '../../../components/ChannelAvatar'; import {getCatalogProductRouteForComponent, getConnectedRouteForComponent} from '../../../services'; import {DescriptionComponent, getDescriptionSourceName} from '../../../components/Description'; @@ -14,13 +14,23 @@ import styles from './index.module.scss'; import NotifyMeModal from '../NotifyMeModal'; import {CONNECTORS_ROUTE} from '../../../routes/routes'; import {getMergedConnectors} from '../../../selectors'; +import {InstallerLoader} from 'components/loaders/InstallerLoader'; + +export type ObservationInstallStatus = { + pending: boolean; + name: string; + retries: number; +}; type CatalogCardProps = { componentInfo: ComponentInfo; + setObserveInstallStatus: Dispatch>; + showConfigureModal: string; + blockInstalling: boolean; + installStatus: InstallationStatus; } & ConnectedProps; const mapStateToProps = (state: StateModel) => ({ - component: state.data.catalog, connectors: getMergedConnectors(state), }); @@ -33,14 +43,21 @@ const connector = connect(mapStateToProps, mapDispatchToProps); export const availabilityFormatted = (availability: string) => availability.split(','); const CatalogCard = (props: CatalogCardProps) => { - const {component, connectors, componentInfo, installComponent} = props; + const { + connectors, + componentInfo, + installComponent, + setObserveInstallStatus, + showConfigureModal, + blockInstalling, + installStatus, + } = props; const hasConnectedChannels = connectors[componentInfo?.name].connectedChannels > 0; const isConfigured = connectors[componentInfo?.name].isConfigured; const isChannel = connectors[componentInfo?.name].isChannel; - const isInstalled = component[componentInfo?.name]?.installed; + const [isPending, setIsPending] = useState(installStatus === InstallationStatus.pending); const [isModalVisible, setIsModalVisible] = useState(false); const [isNotifyMeModalVisible, setIsNotifyMeModalVisible] = useState(false); - const [isPending, setIsPending] = useState(false); const [notification, setNotification] = useState(null); const [notifyMeNotification, setNotifyMeNotification] = useState(null); const [forceClose, setForceClose] = useState(false); @@ -55,17 +72,22 @@ const CatalogCard = (props: CatalogCardProps) => { //Commented until backend is ready for this!!! // const notifiedEmail = t('infoNotifyMe') + ` ${notified}`; + useEffect(() => { + showConfigureModal === componentInfo?.name && (setIsModalVisible(true), setIsPending(false)); + if (connectors[componentInfo?.name].installationStatus !== InstallationStatus.pending) { + setIsPending(false); + } + }, [showConfigureModal, connectors[componentInfo?.name].installationStatus]); + const openInstallModal = () => { setIsPending(true); installComponent({name: componentInfo.name}) .then(() => { - setNotification({show: true, successful: true, text: t('successfullyInstalled')}); - setIsModalVisible(true); + setObserveInstallStatus({pending: true, name: componentInfo?.name, retries: 0}); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedInstall')}); - }) - .finally(() => { + setObserveInstallStatus({pending: false, name: componentInfo?.name, retries: 0}); setIsPending(false); }); }; @@ -117,7 +139,7 @@ const CatalogCard = (props: CatalogCardProps) => { ); } - if (isInstalled) { + if (connectors[componentInfo?.name].installationStatus === InstallationStatus.installed) { return ( + } + hoverElementWidth={400} + direction="right" + position="absolute" + top={84} + left={100} + tooltipContent={t('tooltipInstallingQueue')} + /> + ) : ( + + )} + ); }; return ( <> -
-
-
- {getChannelAvatar(componentInfo.displayName)} - -
-
-

{componentInfo.displayName}

-

- {' '} - {t('categories')}: {componentInfo.category}{' '} -

-
-
- -
- {componentInfo.name && ( -

- -

- )} - -

- - {t('availableFor')}: -

-
-
- {componentInfo?.availableFor && - availabilityFormatted(componentInfo.availableFor).map((service: string) => ( - - ))} -
- {/* Commented until backend is ready for this!!! +
+ +
+
+
+ {getChannelAvatar(componentInfo.displayName)} + +
+
+

{componentInfo.displayName}

+

+ {' '} + {t('categories')}: {componentInfo.category}{' '} +

+
+
+
+ {componentInfo.name && ( +

+ +

+ )} + +

+ + {t('availableFor')}: +

+
+
+ {componentInfo?.availableFor && + availabilityFormatted(componentInfo.availableFor).map((service: string) => ( + + ))} +
+ {/* Commented until backend is ready for this!!! {componentInfo?.price === ConnectorPrice.requestAccess && (
{t('soon').toUpperCase()}
)} */} -
-
- - {isModalVisible && ( - } - wrapperClassName={styles.enableModalContainerWrapper} - containerClassName={styles.enableModalContainer} - title={`${componentInfo.displayName} ${t('installed')}`} - close={closeModal} - headerClassName={styles.headerModal} - > - - - )} +
+
+ + {isModalVisible && ( + } + wrapperClassName={styles.enableModalContainerWrapper} + containerClassName={styles.enableModalContainer} + title={`${componentInfo.displayName} ${t('installed')}`} + close={closeModal} + headerClassName={styles.headerModal} + > + + + )} + + {isNotifyMeModalVisible && ( + + )} +
+ +
- {isNotifyMeModalVisible && ( - - )} - {notification?.show && ( { info={notification.info} /> )} + {notifyMeNotification?.show && ( ({ component: state.data.catalog, + connectors: getMergedConnectors(state), }); const mapDispatchToProps = { installComponent, uninstallComponent, + listComponents, }; const connector = connect(mapStateToProps, mapDispatchToProps); @@ -32,7 +35,7 @@ interface LocationState { } const CatalogItemDetails = (props: ConnectedProps) => { - const {component, installComponent, uninstallComponent} = props; + const {component, connectors, installComponent, uninstallComponent, listComponents} = props; const location = useLocation(); const locationState = location.state as LocationState; const {componentInfo} = locationState; @@ -40,34 +43,69 @@ const CatalogItemDetails = (props: ConnectedProps) => { const [isModalVisible, setIsModalVisible] = useState(false); const [isNotifyMeModalVisible, setIsNotifyMeModalVisible] = useState(false); const [modal, setModal] = useState(null); - const [isPending, setIsPending] = useState(false); const [notification, setNotification] = useState(null); const [notifyMeNotification, setNotifyMeNotification] = useState(null); + const [pendingNotification, setPendingNotification] = useState(null); const [forceClose, setForceClose] = useState(false); + const [installStarted, setInstallStarted] = useState(false); + const [blockInstalling, setBlockInstalling] = useState(false); const notified = localStorage.getItem(`notified.${componentInfo.source}`); const {t} = useTranslation(); const notifiedEmail = t('infoNotifyMe') + ` ${notified}`; const navigate = useNavigate(); const NEW_COMPONENT_INSTALL_ROUTE = getNewChannelRouteForComponent(componentInfo.source); - const isInstalled = component[componentInfo?.name]?.installed; + const isInstalled = component[componentInfo?.name]?.installationStatus === InstallationStatus.installed; const uninstallText = t('uninstall') + ` ${componentInfo.displayName}`; const installText = `${componentInfo.displayName} ` + t('installed'); + const [retries, setRetries] = useState(0); + + useEffect(() => { + Object.values(connectors).map(connector => { + if (connector?.installationStatus === InstallationStatus.pending) { + setBlockInstalling(true); + componentInfo?.price !== ConnectorPrice.requestAccess && + setPendingNotification({show: true, successful: false, text: t('tooltipInstallingQueue'), info: true}); + } + }); + }, []); + + useEffect(() => { + installStarted && recallComponentsList(retries); + if (connectors[componentInfo?.name]?.installationStatus === InstallationStatus.uninstalled && retries > 0) { + setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); + } + if (connectors[componentInfo?.name]?.installationStatus === InstallationStatus.installed && retries > 0) { + setModal({type: ModalType.install, title: installText}); + setIsModalVisible(true); + } + }, [connectors[componentInfo?.name]?.installationStatus, installStarted, retries, setRetries]); + + const recallComponentsList = (retries: number) => { + const maxRetries = 15; + setTimeout(() => { + retries++; + setRetries(retries); + if ( + retries === maxRetries || + (connectors[componentInfo?.name]?.installationStatus !== InstallationStatus.pending && retries > 1) + ) { + setInstallStarted(false); + setRetries(0); + } else { + listComponents(); + } + }, 5000); + }; const openModalInstall = () => { if (!isInstalled) { - setIsPending(true); installComponent({name: componentInfo.name}) .then(() => { - setModal({type: ModalType.install, title: installText}); - setNotification({show: true, successful: true, text: t('successfullyInstalled')}); - setIsModalVisible(true); + setInstallStarted(true); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedInstall')}); - }) - .finally(() => { - setIsPending(false); }); } else { setModal({type: ModalType.uninstall, title: uninstallText}); @@ -80,17 +118,13 @@ const CatalogItemDetails = (props: ConnectedProps) => { }; const confirmUninstall = () => { - setIsPending(true); setIsModalVisible(false); uninstallComponent({name: `${componentInfo.name}`}) .then(() => { - setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); + setInstallStarted(true); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedUninstall')}); - }) - .finally(() => { - setIsPending(false); }); }; @@ -163,8 +197,9 @@ const CatalogItemDetails = (props: ConnectedProps) => { } height={50} width={180} + disabled={blockInstalling} onClick={componentInfo?.price === ConnectorPrice.requestAccess ? handleNotifyMeClick : openModalInstall} - pending={isPending} + pending={connectors[componentInfo?.name]?.installationStatus === InstallationStatus.pending} styleVariant={ componentInfo?.price === ConnectorPrice.requestAccess ? notified @@ -286,6 +321,18 @@ const CatalogItemDetails = (props: ConnectedProps) => { info={notification.info} /> )} + {pendingNotification?.show && ( + + )} {notifyMeNotification?.show && ( { return { catalogList: Object.values(state.data.catalog), + connectors: getMergedConnectors(state), }; }; const mapDispatchToProps = { listComponents, - getConnectorsConfiguration, - listChannels, }; const connector = connect(mapStateToProps, mapDispatchToProps); const Catalog = (props: ConnectedProps) => { - const {catalogList, listComponents, getConnectorsConfiguration, listChannels} = props; + const {catalogList, connectors, listComponents} = props; const [orderedCatalogList, setOrderedCatalogList] = useState(catalogList); + const [observeInstallStatus, setObserveInstallStatus] = useState(null); + const [notification, setNotification] = useState(null); + const [showConfigureModal, setShowConfigureModal] = useState(''); + const [blockInstalling, setBlockInstalling] = useState(false); const {t} = useTranslation(); const catalogPageTitle = t('Catalog'); const [currentFilter, setCurrentFilter] = useState( @@ -36,18 +42,48 @@ const Catalog = (props: ConnectedProps) => { const sortByName = (a: ComponentInfo, b: ComponentInfo) => a?.displayName?.localeCompare(b?.displayName); useEffect(() => { - listChannels().catch((error: Error) => { - console.error(error); - }); - getConnectorsConfiguration().catch((error: Error) => { - console.error(error); - }); - listComponents().catch((error: Error) => { - console.error(error); - }); setPageTitle(catalogPageTitle); }, []); + useEffect(() => { + observeInstallStatus?.pending && recallComponentsList(observeInstallStatus?.retries); + + !observeInstallStatus && + Object.values(connectors).map(connector => { + connector.installationStatus === InstallationStatus.pending && + (setObserveInstallStatus({pending: true, name: connector.name, retries: 0}), + recallComponentsList(observeInstallStatus?.retries)); + }); + }, [observeInstallStatus, connectors[observeInstallStatus?.name]?.installationStatus]); + + const recallComponentsList = (retries: number) => { + connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.pending + ? setBlockInstalling(true) + : setBlockInstalling(false); + + if (connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.installed) { + setShowConfigureModal(observeInstallStatus?.name); + } + + if (connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.uninstalled) { + setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); + } + + const maxRetries = 15; + setTimeout(() => { + retries++; + setObserveInstallStatus({...observeInstallStatus, retries: retries}); + if ( + observeInstallStatus?.retries === maxRetries || + (connectors[observeInstallStatus?.name]?.installationStatus !== InstallationStatus.pending && retries > 1) + ) { + setObserveInstallStatus({...observeInstallStatus, pending: false}); + } else { + listComponents(); + } + }, 5000); + }; + useLayoutEffect(() => { if (query && currentFilter === FilterTypes.all) { const filteredCatalogByName = [...catalogList].filter((component: ComponentInfo) => @@ -56,10 +92,19 @@ const Catalog = (props: ConnectedProps) => { setOrderedCatalogList(filteredCatalogByName); } else { const sortedByInstalled = [...catalogList] - .filter((component: ComponentInfo) => component.installed && component.price !== ConnectorPrice.requestAccess) + .filter( + (component: ComponentInfo) => + component.installationStatus === InstallationStatus.installed && + component.price !== ConnectorPrice.requestAccess + ) .sort(sortByName); const sortedByUninstalled = [...catalogList] - .filter((component: ComponentInfo) => !component.installed && component.price !== ConnectorPrice.requestAccess) + .filter( + (component: ComponentInfo) => + (component.installationStatus === InstallationStatus.uninstalled || + component.installationStatus === InstallationStatus.pending) && + component.price !== ConnectorPrice.requestAccess + ) .sort(sortByName); const sortedByAccess = [...catalogList] .filter((component: ComponentInfo) => component.price === ConnectorPrice.requestAccess) @@ -101,27 +146,53 @@ const Catalog = (props: ConnectedProps) => { }, [catalogList, currentFilter, query]); return ( -
-
-

{catalogPageTitle}

- -
- -
- {orderedCatalogList && orderedCatalogList.length > 0 ? ( - orderedCatalogList.map((infoItem: ComponentInfo) => { - if (infoItem?.name && infoItem?.displayName) { - return ; - } - }) + <> +
+
+

{catalogPageTitle}

+ {catalogList.length > 0 && ( + + )} +
+ {catalogList.length > 0 ? ( +
+ {orderedCatalogList && orderedCatalogList.length > 0 ? ( + orderedCatalogList.map((infoItem: ComponentInfo) => { + if (infoItem?.name && infoItem?.displayName) { + return ( + + ); + } + }) + ) : ( +
+

{t('nothingFound')}

+ {t('noMatchingCatalogs')} +
+ )} +
) : ( -
-

{t('nothingFound')}

- {t('noMatchingCatalogs')} -
+ )}
-
+ {notification?.show && ( + + )} + ); }; diff --git a/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss b/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss index e5c69b73e4..bd01f34804 100644 --- a/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss @@ -6,7 +6,7 @@ width: 260px; height: 100px; margin-bottom: 28px; - margin-right: 36px; + margin-right: 28px; display: flex; align-items: center; border: 1px solid var(--color-dark-elements-gray); diff --git a/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss b/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss index 08eb62d8d0..950af2a3a3 100644 --- a/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss @@ -6,7 +6,7 @@ width: 260px; height: 100px; margin-bottom: 28px; - margin-right: 36px; + margin-right: 28px; display: flex; flex-direction: column; align-items: flex-start; diff --git a/frontend/control-center/src/pages/Connectors/index.module.scss b/frontend/control-center/src/pages/Connectors/index.module.scss index 3cc830d2de..ee69411f73 100644 --- a/frontend/control-center/src/pages/Connectors/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/index.module.scss @@ -8,7 +8,7 @@ padding: 32px; margin: 88px 1.5em 0 191px; height: calc(100vh - 88px); - overflow-y: scroll; + overflow-y: hidden; overflow-x: hidden; width: 100%; } diff --git a/frontend/control-center/src/pages/Connectors/index.tsx b/frontend/control-center/src/pages/Connectors/index.tsx index 62a1f3a7b8..c90923d26b 100644 --- a/frontend/control-center/src/pages/Connectors/index.tsx +++ b/frontend/control-center/src/pages/Connectors/index.tsx @@ -1,22 +1,15 @@ import React, {useEffect} from 'react'; import {connect, ConnectedProps} from 'react-redux'; -import {Connector, Source} from 'model'; +import {Connector, InstallationStatus, Source} from 'model'; import InfoCard from './InfoCard'; import {StateModel} from '../../reducers'; -import {listChannels, listComponents, getConnectorsConfiguration} from '../../actions'; import {setPageTitle} from '../../services/pageTitle'; import {EmptyStateConnectors} from './EmptyStateConnectors'; import {ChannelCard} from './ChannelCard'; -import {SimpleLoader} from 'components'; import {getComponentStatus} from '../../services'; import styles from './index.module.scss'; import {getMergedConnectors} from '../../selectors'; - -const mapDispatchToProps = { - listChannels, - getConnectorsConfiguration, - listComponents, -}; +import {AiryLoader} from 'components/loaders/AiryLoader'; const mapStateToProps = (state: StateModel) => { return { @@ -24,12 +17,15 @@ const mapStateToProps = (state: StateModel) => { }; }; -const connector = connect(mapStateToProps, mapDispatchToProps); +const connector = connect(mapStateToProps, null); const Connectors = (props: ConnectedProps) => { - const {connectors, listChannels, getConnectorsConfiguration, listComponents} = props; + const {connectors} = props; const installedConnectors = Object.values(connectors).filter( - (connector: Connector) => connector.isInstalled && connector.source !== Source.webhooks && connector.price + (connector: Connector) => + connector.installationStatus === InstallationStatus.installed && + connector.source !== Source.webhooks && + connector.price ); const hasAvailableConnectors = Object.values(connectors).filter((connector: Connector) => connector.source !== Source.webhooks && connector.price) @@ -40,15 +36,6 @@ const Connectors = (props: ConnectedProps) => { const sortByName = (a: Connector, b: Connector) => a?.displayName?.localeCompare(b?.displayName); useEffect(() => { - listChannels().catch((error: Error) => { - console.error(error); - }); - getConnectorsConfiguration().catch((error: Error) => { - console.error(error); - }); - listComponents().catch((error: Error) => { - console.error(error); - }); setPageTitle(pageTitle); }, []); @@ -57,11 +44,12 @@ const Connectors = (props: ConnectedProps) => {

Connectors

- {!hasAvailableConnectors && }
- {!hasInstalledComponents ? ( + {!hasAvailableConnectors ? ( + + ) : !hasInstalledComponents ? ( ) : ( <> @@ -73,7 +61,7 @@ const Connectors = (props: ConnectedProps) => { componentInfo={connector} componentStatus={getComponentStatus( connector.isHealthy, - connector.isInstalled, + connector.installationStatus === InstallationStatus.installed, connector.isConfigured, connector.isEnabled )} @@ -88,7 +76,7 @@ const Connectors = (props: ConnectedProps) => { componentInfo={connector} componentStatus={getComponentStatus( connector.isHealthy, - connector.isInstalled, + connector.installationStatus === InstallationStatus.installed, connector.isConfigured, connector.isEnabled )} diff --git a/frontend/control-center/src/pages/Status/index.tsx b/frontend/control-center/src/pages/Status/index.tsx index 6da03d4216..0f67580c5e 100644 --- a/frontend/control-center/src/pages/Status/index.tsx +++ b/frontend/control-center/src/pages/Status/index.tsx @@ -7,6 +7,7 @@ import {ReactComponent as RefreshIcon} from 'assets/images/icons/refreshIcon.svg import {setPageTitle} from '../../services/pageTitle'; import {useTranslation} from 'react-i18next'; import styles from './index.module.scss'; +import {AiryLoader} from 'components/loaders/AiryLoader'; const mapDispatchToProps = { getClientConfig, @@ -71,33 +72,37 @@ const Status = (props: ConnectedProps) => { {lastRefresh}
-
-

{t('componentName')}

-

{t('healthStatus')}

- -

{t('enabled')}

-
- -
-
- {Object.entries(catalog).length > 0 && - components.map((component, index) => { - const catalogItem = catalog[component[0]]; - return ( - - ); - })} -
+
+ {components.map((component, index) => { + const catalogItem = catalog[component[0]]; + return ( + + ); + })} +
+ + ) : ( + + )}
); }; diff --git a/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss b/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss index 4842abd201..39684b4f2b 100644 --- a/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss +++ b/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss @@ -6,7 +6,7 @@ justify-content: center; align-items: center; width: 100%; - height: 100%; + height: calc(100% - 88px); } .contentContainer { diff --git a/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx b/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx index 41d6bb83af..f9bebebdb8 100644 --- a/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx +++ b/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx @@ -1,4 +1,3 @@ -import {ContentWrapper} from 'components/wrapper/ContentWrapper'; import React, {Dispatch, SetStateAction} from 'react'; import styles from './index.module.scss'; import {ReactComponent as SearchIcon} from 'assets/images/icons/search.svg'; @@ -13,25 +12,19 @@ export const EmptyState = (props: EmptyStateProps) => { const {t} = useTranslation(); return ( - -
-
- -
-

{t('noWebhooks')}

- - {t('noWebhooksText')} - setNewWebhook(true)} className={styles.subscribeButton}> - {t('subscribe')} - - -
+
+
+
+
- } - /> +

{t('noWebhooks')}

+ + {t('noWebhooksText')} + setNewWebhook(true)} className={styles.subscribeButton}> + {t('subscribe')} + + +
+
); }; diff --git a/frontend/control-center/src/pages/Webhooks/index.tsx b/frontend/control-center/src/pages/Webhooks/index.tsx index fbda3cee18..b1cd22b846 100644 --- a/frontend/control-center/src/pages/Webhooks/index.tsx +++ b/frontend/control-center/src/pages/Webhooks/index.tsx @@ -13,6 +13,7 @@ import styles from './index.module.scss'; import SubscriptionModal from './SubscriptionModal'; import WebhooksListItem from './WebhooksListItem'; import {NotificationModel} from 'model'; +import {AiryLoader} from 'components/loaders/AiryLoader'; type WebhooksProps = {} & ConnectedProps; @@ -34,6 +35,7 @@ const Webhooks = (props: WebhooksProps) => { const [isLoading, setIsLoading] = useState(false); const [errorOccurred, setErrorOccurred] = useState(false); const [notification, setNotification] = useState(null); + const [dataFetched, setDataFetched] = useState(false); const {t} = useTranslation(); useEffect(() => { @@ -42,9 +44,13 @@ const Webhooks = (props: WebhooksProps) => { useEffect(() => { webhooks.length === 0 && - listWebhooks().catch((error: Error) => { - console.error(error); - }); + listWebhooks() + .then(() => { + setDataFetched(true); + }) + .catch((error: Error) => { + console.error(error); + }); }, [webhooks]); const handleNotification = (show: boolean, error: boolean) => { @@ -115,27 +121,23 @@ const Webhooks = (props: WebhooksProps) => { /> )} - {webhooks.length === 0 ? ( - - ) : ( - <> - {notification?.show && ( - - )} -
-
-
-

Webhooks

- -
-
+
+
+
+

Webhooks

+ {webhooks.length > 0 && ( + + )} +
+
+ {webhooks.length === 0 && !dataFetched ? ( + + ) : webhooks.length === 0 ? ( + + ) : ( + <>

URL

Name

@@ -154,9 +156,17 @@ const Webhooks = (props: WebhooksProps) => { /> ))}
-
- - )} + {notification?.show && ( + + )} + + )} +
); }; diff --git a/frontend/control-center/src/reducers/data/catalog/index.ts b/frontend/control-center/src/reducers/data/catalog/index.ts index e6ded10580..65d0cd712c 100644 --- a/frontend/control-center/src/reducers/data/catalog/index.ts +++ b/frontend/control-center/src/reducers/data/catalog/index.ts @@ -22,7 +22,7 @@ export default function connectorsReducer(state = defaultState, action: Action): ...state, [action.payload.name]: { ...state[action.payload.name], - installed: true, + installationStatus: 'pending', }, }; } @@ -31,7 +31,7 @@ export default function connectorsReducer(state = defaultState, action: Action): ...state, [action.payload.name]: { ...state[action.payload.name], - installed: false, + installationStatus: 'pending', }, }; } diff --git a/frontend/control-center/src/selectors/connectors.ts b/frontend/control-center/src/selectors/connectors.ts index 8e78f7b3c7..a3acb0884b 100644 --- a/frontend/control-center/src/selectors/connectors.ts +++ b/frontend/control-center/src/selectors/connectors.ts @@ -1,6 +1,6 @@ import {StateModel} from '../reducers'; import {useSelector} from 'react-redux'; -import {Channel, Connector, ConnectorName, ConnectorsModel, Source} from 'model'; +import {Channel, Connector, ConnectorName, ConnectorsModel, InstallationStatus, Source} from 'model'; import {createSelector} from 'reselect'; import {merge} from 'lodash-es'; import {allChannelsConnected} from './channels'; @@ -31,7 +31,7 @@ export const getMergedConnectors = createSelector( const channelsBySource = (Source: Source) => channels.filter((channel: Channel) => channel.source === Source); const connectedChannels = channelsBySource(catalog[1].source).length; const isChannel = catalog[1].isChannel?.includes('true') ?? false; - const isInstalled = catalog[1].installed; + const isInstalled = catalog[1].installationStatus === InstallationStatus.installed; const price = catalog[1].price; const source = catalog[1].source; const name = catalog[0]; @@ -40,7 +40,7 @@ export const getMergedConnectors = createSelector( structuredCatalog = { name: name, displayName: displayName, - isInstalled: isInstalled, + installationStatus: catalog[1].installationStatus, isConfigured: !isInstalled && false, isHealthy: !isInstalled && false, isEnabled: !isInstalled && false, diff --git a/lib/typescript/assets/images/icons/amazonLexV2Logo.svg b/lib/typescript/assets/images/icons/amazonLexV2Logo.svg new file mode 100644 index 0000000000..abfdf8462b --- /dev/null +++ b/lib/typescript/assets/images/icons/amazonLexV2Logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/typescript/components/BUILD b/lib/typescript/components/BUILD index 1a2284eeed..78cf999e51 100644 --- a/lib/typescript/components/BUILD +++ b/lib/typescript/components/BUILD @@ -11,11 +11,13 @@ ts_web_library( "//lib/typescript/types", "@npm//@types/node", "@npm//@types/react", + "@npm//@types/react-lottie", "@npm//i18next", "@npm//lodash-es", "@npm//react", "@npm//react-autosize-textarea", "@npm//react-i18next", + "@npm//react-lottie", "@npm//react-modal", "@npm//react-router-dom", ], diff --git a/lib/typescript/components/alerts/NotificationComponent/index.module.scss b/lib/typescript/components/alerts/NotificationComponent/index.module.scss index 935a41cc36..3ca058d584 100644 --- a/lib/typescript/components/alerts/NotificationComponent/index.module.scss +++ b/lib/typescript/components/alerts/NotificationComponent/index.module.scss @@ -80,14 +80,17 @@ .translateYAnimFade { animation-name: translateYFade; animation-timing-function: ease-in-out; + animation-fill-mode: forwards; } .translateYAnimSticky { animation-name: translateYSticky; animation-timing-function: ease-in-out; + animation-fill-mode: forwards; } .translateYAnimStickyClose { animation-name: translateYStickyClose; animation-timing-function: ease-in-out; + animation-fill-mode: forwards; } diff --git a/lib/typescript/components/loaders/AiryLoader/data.json b/lib/typescript/components/loaders/AiryLoader/data.json new file mode 100644 index 0000000000..cdaa3eb74f --- /dev/null +++ b/lib/typescript/components/loaders/AiryLoader/data.json @@ -0,0 +1,3618 @@ + { + "v": "5.5.2", + "fr": 25, + "ip": 0, + "op": 150, + "w": 800, + "h": 600, + "nm": "main", + "ddd": 0, + "assets": [ + { + "id": "comp_0", + "layers": [ + { + "ddd": 0, + "ind": 2, + "ty": 0, + "nm": "A", + "refId": "comp_1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 400, + 300, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 400, + 300, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "w": 800, + "h": 600, + "ip": 0, + "op": 153, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Background – logo 4", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 400.048, + 297.666, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 156.707, + 157.891, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 89.013, + -5.356 + ], + [ + 6.654, + -75.723 + ], + [ + -9.549, + -22.526 + ], + [ + 0.638, + -2.729 + ], + [ + 0, + 0 + ], + [ + -0.32, + 0.014 + ], + [ + 0, + 0 + ], + [ + -2.067, + -1.479 + ], + [ + -34.314, + 0.411 + ], + [ + 1.404, + 85.166 + ] + ], + "o": [ + [ + -75.877, + 4.565 + ], + [ + -2.328, + 26.501 + ], + [ + 1.094, + 2.58 + ], + [ + 0, + 0 + ], + [ + -0.073, + 0.311 + ], + [ + 0, + 0 + ], + [ + 2.538, + -0.114 + ], + [ + 25.853, + 18.504 + ], + [ + 85.17, + -1.02 + ], + [ + -1.444, + -87.511 + ] + ], + "v": [ + [ + -9.365, + -154.619 + ], + [ + -154.081, + -13.896 + ], + [ + -142.446, + 60.358 + ], + [ + -141.689, + 68.508 + ], + [ + -155.108, + 128.497 + ], + [ + -154.616, + 129.089 + ], + [ + -96.912, + 123.898 + ], + [ + -89.829, + 126.045 + ], + [ + 2.113, + 154.895 + ], + [ + 155.101, + -2.606 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "mm", + "mm": 4, + "nm": "Merge Paths 1", + "mn": "ADBE Vector Filter - Merge", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.294000004787, + 0.702000038297, + 0.991999966491, + 1 + ], + "ix": 4 + }, + "o": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 72, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 79, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 94, + "s": [ + 100 + ] + }, + { + "t": 101, + "s": [ + 0 + ] + } + ], + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 156.659, + 160.225 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 54, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 74, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 109, + "s": [ + 100 + ] + }, + { + "t": 121, + "s": [ + 0 + ] + } + ], + "ix": 1 + }, + "e": { + "a": 0, + "k": 0, + "ix": 2 + }, + "o": { + "a": 0, + "k": 0, + "ix": 3 + }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.29411765933, + 0.701960802078, + 0.992156922817, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 49, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 66, + "s": [ + 2 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 76, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 94, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 104, + "s": [ + 2 + ] + }, + { + "t": 121, + "s": [ + 0 + ] + } + ], + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 44, + "op": 809, + "st": 44, + "bm": 0 + } + ] + }, + { + "id": "comp_1", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "part 3", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 0, + "s": [ + -33 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 13, + "s": [ + 15 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 31, + "s": [ + 25 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + 25 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 49, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 114.833, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 123.167, + "s": [ + 25 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 129.833, + "s": [ + 25 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 140.667, + "s": [ + 15 + ] + }, + { + "t": 151.5, + "s": [ + -33 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 37, + "s": [ + 400, + 300, + 0 + ], + "to": [ + -6.271, + -5, + 0 + ], + "ti": [ + 6.271, + 5, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 49, + "s": [ + 362.375, + 270, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 0 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 110, + "s": [ + 362.375, + 270, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 114, + "s": [ + 362.375, + 270, + 0 + ], + "to": [ + 6.271, + 5, + 0 + ], + "ti": [ + -6.271, + -5, + 0 + ] + }, + { + "t": 124, + "s": [ + 400, + 300, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 31.146, + 43.689, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 0, + "s": [ + 0, + 0, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 16, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 110, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 1, + 1, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 137.333, + "s": [ + 100, + 100, + 100 + ] + }, + { + "t": 150.6669921875, + "s": [ + 0, + 0, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 30.896, + 18.648 + ], + [ + -30.896, + 43.439 + ], + [ + 5.988, + -43.439 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 8, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 16, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 110, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 144, + "s": [ + 100 + ] + }, + { + "t": 150.6669921875, + "s": [ + 0 + ] + } + ], + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 31.146, + 43.689 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 0, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 20, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 137.333, + "s": [ + 0 + ] + }, + { + "t": 154, + "s": [ + 100 + ] + } + ], + "ix": 1 + }, + "e": { + "a": 0, + "k": 100, + "ix": 2 + }, + "o": { + "a": 0, + "k": 0, + "ix": 3 + }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.258823543787, + 0.666666686535, + 0.992156863213, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 4, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 0, + "op": 765, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "part 4", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 23, + "s": [ + -40 + ] + }, + { + "i": { + "x": [ + 0.004 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + -13 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 53, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.004 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.996 + ], + "y": [ + 0 + ] + }, + "t": 117.333, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 129, + "s": [ + -13 + ] + }, + { + "t": 142.3330078125, + "s": [ + -40 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.296, + "y": 0 + }, + "t": 23, + "s": [ + 398.603, + 302.839, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.428, + "y": 0.267 + }, + "t": 34, + "s": [ + 307.546, + 342.236, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 53, + "s": [ + 435.046, + 291.736, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 0 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 110, + "s": [ + 435.046, + 291.736, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.572, + "y": 0.733 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 117.333, + "s": [ + 435.046, + 291.736, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.704, + "y": 1 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 133.167, + "s": [ + 307.546, + 342.236, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "t": 142.3330078125, + "s": [ + 398.603, + 302.839, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 61.591, + 98.404, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1.063, + 1.063, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 20, + "s": [ + 0, + 0, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 39, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 3.067, + 3.067, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 123, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 1, + 1, + 0.333 + ], + "y": [ + -0.063, + -0.063, + 0 + ] + }, + "t": 128.167, + "s": [ + 100, + 100, + 100 + ] + }, + { + "t": 144, + "s": [ + 0, + 0, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 61.342, + 76.983 + ], + [ + 8.924, + 98.153 + ], + [ + -61.342, + -76.985 + ], + [ + -8.925, + -98.153 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 61.591, + 98.404 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.258823529412, + 0.666666666667, + 0.992156922583, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 4, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 20, + "op": 785, + "st": 20, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Part 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 24, + "s": [ + -65 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + 35 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 50, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 119, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 128.167, + "s": [ + 35 + ] + }, + { + "t": 140.6669921875, + "s": [ + -65 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 24, + "s": [ + 399.08, + 301.932, + 0 + ], + "to": [ + -11.447, + -17.333, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 40, + "s": [ + 330.401, + 197.932, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 50, + "s": [ + 383.984, + 345.641, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 0 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 110, + "s": [ + 383.984, + 345.641, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 119, + "s": [ + 383.984, + 345.641, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 127.333, + "s": [ + 330.401, + 197.932, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + -11.447, + -17.333, + 0 + ] + }, + { + "t": 140.6669921875, + "s": [ + 399.08, + 301.932, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 50.694, + 47.891, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 19, + "s": [ + 0, + 0, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 39, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 110, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 1, + 1, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 127.333, + "s": [ + 100, + 100, + 100 + ] + }, + { + "t": 144, + "s": [ + 0, + 0, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 50.444, + 47.641 + ], + [ + -50.444, + -22.526 + ], + [ + 12.218, + -47.641 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 50.694, + 47.891 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.258823529412, + 0.666666666667, + 0.992156922583, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 4, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 20, + "op": 785, + "st": 20, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "part 1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 18, + "s": [ + -48 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + 26 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 53, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 114.833, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 126.5, + "s": [ + 26 + ] + }, + { + "t": 144, + "s": [ + -48 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 20, + "s": [ + 398.596, + 301.788, + 0 + ], + "to": [ + 11.833, + -5.798, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 36, + "s": [ + 469.596, + 267, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 53, + "s": [ + 334.221, + 354.625, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 0 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 110, + "s": [ + 334.221, + 354.625, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 116.5, + "s": [ + 334.221, + 354.625, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 130.667, + "s": [ + 469.596, + 267, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 11.833, + -5.798, + 0 + ] + }, + { + "t": 144, + "s": [ + 398.596, + 301.788, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 31.548, + 25.807, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 16, + "s": [ + 0, + 0, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 39, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 110, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 1, + 1, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 126.5, + "s": [ + 100, + 100, + 100 + ] + }, + { + "t": 145.6669921875, + "s": [ + 0, + 0, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 31.298, + 1.327 + ], + [ + -31.298, + 25.557 + ], + [ + -8.792, + -25.557 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 31.548, + 25.807 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.258823529412, + 0.666666666667, + 0.992156922583, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 4, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 17, + "op": 782, + "st": 17, + "bm": 0 + } + ] + } + ], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 0, + "nm": "logo-loading", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 400, + 300, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 400, + 300, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "w": 800, + "h": 600, + "ip": 0, + "op": 765, + "st": 0, + "bm": 0 + } + ], + "markers": [] +} \ No newline at end of file diff --git a/lib/typescript/components/loaders/AiryLoader/index.module.scss b/lib/typescript/components/loaders/AiryLoader/index.module.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/typescript/components/loaders/AiryLoader/index.tsx b/lib/typescript/components/loaders/AiryLoader/index.tsx new file mode 100644 index 0000000000..5546964084 --- /dev/null +++ b/lib/typescript/components/loaders/AiryLoader/index.tsx @@ -0,0 +1,59 @@ +import React from 'react'; +import Lottie from 'react-lottie'; +import animationData from './data.json'; + +type AiryLoaderProps = { + height?: number; + width?: number; + loop?: boolean; + autoplay?: boolean; + position?: 'absolute' | 'relative'; + top?: number; + right?: number; + bottom?: number; + left?: number; +}; + +export const AiryLoader = (props: AiryLoaderProps) => { + const {height, width, loop, autoplay, position, top, right, bottom, left} = props; + const margin = 88; + + const defaultOptions = { + loop: loop || true, + autoplay: autoplay || true, + animationData: animationData, + rendererSettings: { + preserveAspectRatio: 'xMidYMid slice', + }, + }; + + return ( +
+ +
+ ); +}; diff --git a/lib/typescript/components/loaders/InstallerLoader/index.module.scss b/lib/typescript/components/loaders/InstallerLoader/index.module.scss new file mode 100644 index 0000000000..8322e02713 --- /dev/null +++ b/lib/typescript/components/loaders/InstallerLoader/index.module.scss @@ -0,0 +1,20 @@ +.container { + background: transparent; + pointer-events: none; +} + +.containerInstalling { + display: flex; + align-items: center; + justify-content: center; + background: rgba($color: #000000, $alpha: 0.3); + pointer-events: all; +} + +.loader { + display: none; +} + +.loaderInstalling { + position: absolute; +} diff --git a/lib/typescript/components/loaders/InstallerLoader/index.tsx b/lib/typescript/components/loaders/InstallerLoader/index.tsx new file mode 100644 index 0000000000..bdb886c4f7 --- /dev/null +++ b/lib/typescript/components/loaders/InstallerLoader/index.tsx @@ -0,0 +1,63 @@ +import React from 'react'; +import styles from './index.module.scss'; +import Lottie from 'react-lottie'; +import animationData from './spinnerLoader.json'; + +type InstallerLoaderProps = { + children?: React.ReactNode; + marginTop?: number; + marginRight?: number; + marginBottom?: number; + marginLeft?: number; + borderRadius?: number; + installing: boolean; + height?: number; + width?: number; + loop?: boolean; + autoplay?: boolean; +}; + +export const InstallerLoader = (props: InstallerLoaderProps) => { + const { + children, + marginTop, + marginRight, + marginBottom, + marginLeft, + borderRadius, + installing, + height, + width, + loop, + autoplay, + } = props; + + const defaultOptions = { + loop: loop || true, + autoplay: autoplay || true, + animationData: animationData, + rendererSettings: { + preserveAspectRatio: 'xMidYMid slice', + }, + }; + + return ( +
+ {installing && ( +
+ +
+ )} + {children} +
+ ); +}; diff --git a/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json b/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json new file mode 100644 index 0000000000..69ce9ae4c9 --- /dev/null +++ b/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json @@ -0,0 +1 @@ +{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.21","a":"","k":"","d":"","tc":""},"fr":60,"ip":0,"op":90,"w":246,"h":246,"nm":"loader for public","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","parent":2,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":90,"s":[360]}],"ix":10},"p":{"a":0,"k":[3.002,-217.775,0],"ix":2},"a":{"a":0,"k":[3.002,-217.775,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[239.598,239.598],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":28,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.002,-217.775],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44.25,"s":[0]},{"t":90,"s":[60]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[10]},{"t":44.25,"s":[70]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":90,"s":[144]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"color","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":360,"ix":10},"p":{"a":0,"k":[123,123,0],"ix":2},"a":{"a":0,"k":[3.002,-217.775,0],"ix":1},"s":{"a":0,"k":[89.983,89.983,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[239.598,239.598],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":32,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.418,0.922,0.954,0.5,0.43,0.796,0.97,1,0.441,0.669,0.986],"ix":8}},"s":{"a":0,"k":[-118.969,-118.703],"ix":4},"e":{"a":0,"k":[122.126,120.78],"ix":5},"t":1,"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.002,-217.775],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/lib/typescript/components/loaders/index.ts b/lib/typescript/components/loaders/index.ts index 39d4fb6b4b..1b2b78e05b 100644 --- a/lib/typescript/components/loaders/index.ts +++ b/lib/typescript/components/loaders/index.ts @@ -1 +1,3 @@ export * from './SimpleLoader'; +export * from './InstallerLoader'; +export * from './AiryLoader'; diff --git a/lib/typescript/components/tooltip/index.module.scss b/lib/typescript/components/tooltip/index.module.scss index ef727c266a..456d501db3 100644 --- a/lib/typescript/components/tooltip/index.module.scss +++ b/lib/typescript/components/tooltip/index.module.scss @@ -65,6 +65,7 @@ padding: 4px 6px; color: var(--color-text-contrast); position: relative; + z-index: 4; } .hoverElement:hover ~ .tooltipContent.top { diff --git a/lib/typescript/components/tooltip/index.tsx b/lib/typescript/components/tooltip/index.tsx index b0f0329a24..66f2d1f98f 100644 --- a/lib/typescript/components/tooltip/index.tsx +++ b/lib/typescript/components/tooltip/index.tsx @@ -8,14 +8,31 @@ type TooltipProps = { hoverElementWidth: number; tooltipContent: string; direction: 'top' | 'right' | 'bottom' | 'left' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'; + position?: 'absolute' | 'relative'; + top?: number; + right?: number; + bottom?: number; + left?: number; navigateTo?: string; }; export const Tooltip = (props: TooltipProps) => { - const {hoverElement, hoverElementHeight, hoverElementWidth, tooltipContent, direction, navigateTo} = props; + const { + hoverElement, + hoverElementHeight, + hoverElementWidth, + tooltipContent, + direction, + position, + navigateTo, + top, + right, + bottom, + left, + } = props; const navigate = useNavigate(); - const left = direction === 'bottomLeft' || direction === 'topLeft'; - const right = direction === 'bottomRight' || direction === 'topRight'; + const leftDirection = direction === 'bottomLeft' || direction === 'topLeft'; + const rightDirection = direction === 'bottomRight' || direction === 'topRight'; const margin = hoverElementWidth + 5; const handleOnClick = (event: React.MouseEvent) => { @@ -37,7 +54,17 @@ export const Tooltip = (props: TooltipProps) => { {tooltipContent} diff --git a/lib/typescript/model/Components.ts b/lib/typescript/model/Components.ts index 689a85044b..7ddd5a5975 100644 --- a/lib/typescript/model/Components.ts +++ b/lib/typescript/model/Components.ts @@ -1,3 +1,4 @@ +import {InstallationStatus} from './Connectors'; import {Source} from './Source'; export interface Components { @@ -11,13 +12,13 @@ export interface Components { export interface ComponentInfo { displayName: string; name: string; - installed: boolean; availableFor: string; description: string; category: string; price: string; docs: string; source: Source; + installationStatus: InstallationStatus; isChannel?: string; configurationValues?: string; } diff --git a/lib/typescript/model/Connectors.ts b/lib/typescript/model/Connectors.ts index 8e24fd2024..68fec2bf78 100644 --- a/lib/typescript/model/Connectors.ts +++ b/lib/typescript/model/Connectors.ts @@ -1,6 +1,7 @@ import {Source} from './Source'; export enum ConnectorName { + amazonLexV2 = 'amazon-lex-v2-connector', apiAdmin = 'api-admin', apiCommunication = 'api-communication', apiContacts = 'api-contacts', @@ -25,6 +26,12 @@ export enum ConnectorName { zendenkConnector = 'zendesk-connector', } +export enum InstallationStatus { + installed = 'installed', + pending = 'pending', + uninstalled = 'uninstalled', +} + export enum ConnectorPrice { free = 'Free', paid = 'Paid', @@ -34,7 +41,7 @@ export enum ConnectorPrice { export type Connector = { name?: string; displayName?: string; - isInstalled?: boolean; + installationStatus?: InstallationStatus; isEnabled?: boolean; isHealthy?: boolean; isConfigured?: boolean; diff --git a/lib/typescript/model/Source.ts b/lib/typescript/model/Source.ts index 0656856d6b..19ed6ce909 100644 --- a/lib/typescript/model/Source.ts +++ b/lib/typescript/model/Source.ts @@ -19,6 +19,7 @@ export enum Source { frontendInbox = 'frontend-inbox', ibmWatsonAssistant = 'ibmWatsonAssistant', amazons3 = 'amazons3', + amazonLexV2 = 'amazonLexV2', } export const prettifySource = (source: string) => diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index 1932f65284..4083397f84 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -387,6 +387,9 @@ const resources = { //IBM Watson Assistant ibmDescription: 'IBM Watson Assistant uses artificial intelligence that understands customers.', + //Amazon Lex V2 + amazonLexV2Description: 'A web service for building conversational interface for apps using voice and text.', + //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) is an object storage service.', @@ -483,6 +486,7 @@ const resources = { updateSuccessfulConfiguration: 'Configuration successful updated', failedConfiguration: 'Applying configuration failed', updateFailedConfiguration: 'Updating configuration failed', + tooltipInstallingQueue: 'Please wait for other connectors to be installed/uninstalled', //Request Access comingSoon: 'Coming Soon', @@ -988,6 +992,10 @@ const resources = { //IBM Watson Assistant ibmDescription: 'IBM Watson Assistant verwendet künstliche Intelligenz, die den Kunden versteht.', + //Amazon Lex V2 + amazonLexV2Description: + 'Ein Webdienst zur Erstellung von Konversationsschnittstellen für Anwendungen mit Sprache und Text.', + //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherdienst.', @@ -1046,6 +1054,7 @@ const resources = { updateSuccessfulConfiguration: 'Konfiguration erfolgreich aktualisiert', failedConfiguration: 'Anwenden der Konfiguration fehlgeschlagen', updateFailedConfiguration: 'Aktualisierung der Konfiguration fehlgeschlagen', + tooltipInstallingQueue: 'Bitte warten Sie, bis andere Connector installiert/deinstalliert sind', //Request Access @@ -1502,6 +1511,10 @@ const resources = { //IBM Watson Assistant ibmDescription: `L'assistant IBM Watson utilise une intelligence artificielle qui comprend les clients.`, + //Amazon Lex V2 + amazonLexV2Description: + 'Un service web pour construire une interface conversationnelle pour les applications utilisant la voix et le texte.', + //Amazon S3 amazons3Description: `Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets.`, @@ -1597,6 +1610,7 @@ const resources = { updateSuccessfulConfiguration: 'Configuration mise à jour avec succès', failedConfiguration: 'La configuration a échoué', updateFailedConfiguration: 'Échec de la mise à jour de la configuration', + tooltipInstallingQueue: `Veuillez attendre que d'autres connecteurs soient installés/désinstallés.`, //Request Access comingSoon: 'Prochainement', @@ -2063,6 +2077,10 @@ const resources = { //IBM Watson Assistant ibmDescription: 'El Asistente Watson de IBM utiliza inteligencia artificial que entiende a los clientes.', + //Amazon Lex V2 + amazonLexV2Description: + 'Un servicio web para construir una interfaz conversacional para aplicaciones utilizando voz y texto.', + //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos.', @@ -2159,6 +2177,7 @@ const resources = { updateSuccessfulConfiguration: 'Configuración actualizada con éxito', failedConfiguration: 'Fallo en la aplicación de la configuración', updateFailedConfiguration: 'Fallo en la actualización de la configuración', + tooltipInstallingQueue: 'Espere a que se instalen/desinstalen otros conectores', //Request Access comingSoon: 'Próximamente', diff --git a/package.json b/package.json index 613cf07ce9..b84911af29 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,8 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/user-event": "^14.4.3", "@types/jest": "^28.1.7", + "react-lottie": "^1.2.3", + "@types/react-lottie": "^1.2.6", "audio-recorder-polyfill": "^0.4.1", "camelcase-keys": "^8.0.2", "core-js": "3.25.5", diff --git a/yarn.lock b/yarn.lock index c3d0d8fe32..72f3b1ed21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,12 +29,12 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.3", "@babel/compat-data@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" - integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.4", "@babel/compat-data@^7.20.0": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" + integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== -"@babel/core@7.19.3", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.5": +"@babel/core@7.19.3": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== @@ -55,12 +55,33 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.19.3", "@babel/generator@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" - integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f" + integrity sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg== dependencies: - "@babel/types" "^7.19.3" + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.6" + "@babel/helper-compilation-targets" "^7.19.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helpers" "^7.19.4" + "@babel/parser" "^7.19.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/generator@^7.19.3", "@babel/generator@^7.19.6", "@babel/generator@^7.20.1", "@babel/generator@^7.7.2": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.1.tgz#ef32ecd426222624cbd94871a7024639cf61a9fa" + integrity sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg== + dependencies: + "@babel/types" "^7.20.0" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -72,45 +93,37 @@ "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a" - integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" - integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" + integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== dependencies: - "@babel/compat-data" "^7.19.3" + "@babel/compat-data" "^7.20.0" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" - integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b" + integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" - integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" - -"@babel/helper-create-regexp-features-plugin@^7.19.0": +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== @@ -130,11 +143,6 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" - integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== - "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" @@ -147,23 +155,7 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" - integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-function-name@^7.19.0": +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== @@ -178,13 +170,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" - integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== - dependencies: - "@babel/types" "^7.18.6" - "@babel/helper-member-expression-to-functions@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" @@ -199,19 +184,19 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0", "@babel/helper-module-transforms@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz#6c52cc3ac63b70952d33ee987cbee1c9368b533f" + integrity sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.19.4" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -220,22 +205,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== -"@babel/helper-remap-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23" - integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-wrap-function" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-remap-async-to-generator@^7.18.9": +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== @@ -245,41 +220,30 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" - integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== - dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-replace-supers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" - integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" + integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/traverse" "^7.19.1" + "@babel/types" "^7.19.0" -"@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== +"@babel/helper-simple-access@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" + integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.19.4" "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.20.0" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -293,17 +257,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== @@ -313,45 +267,26 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helper-wrap-function@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073" - integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== - dependencies: - "@babel/helper-function-name" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" - "@babel/helper-wrap-function@^7.18.9": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" - integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== - dependencies: - "@babel/helper-function-name" "^7.18.9" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.11" - "@babel/types" "^7.18.10" - -"@babel/helpers@^7.19.0": version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" - integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" + integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== dependencies: + "@babel/helper-function-name" "^7.19.0" "@babel/template" "^7.18.10" "@babel/traverse" "^7.19.0" "@babel/types" "^7.19.0" -"@babel/highlight@^7.10.4": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== +"@babel/helpers@^7.19.0", "@babel/helpers@^7.19.4": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" + integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.0" -"@babel/highlight@^7.18.6": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== @@ -360,10 +295,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" - integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.6", "@babel/parser@^7.20.1": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.1.tgz#3e045a92f7b4623cafc2425eddcb8cf2e54f9cc5" + integrity sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -382,9 +317,9 @@ "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-async-generator-functions@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" - integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz#352f02baa5d69f4e7529bdac39aaa02d41146af9" + integrity sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-plugin-utils" "^7.19.0" @@ -553,11 +488,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" - integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -636,19 +571,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" - integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== +"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" - integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" @@ -674,9 +602,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz#315d70f68ce64426db379a3d830e7ac30be02e9b" - integrity sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz#91fe5e6ffc9ba13cb6c95ed7f0b1204f68c988c5" + integrity sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w== dependencies: "@babel/helper-plugin-utils" "^7.19.0" @@ -703,9 +631,9 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz#46890722687b9b89e1369ad0bd8dc6c5a3b4319d" - integrity sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz#712829ef4825d9cc04bb379de316f981e9a6f648" + integrity sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA== dependencies: "@babel/helper-plugin-utils" "^7.19.0" @@ -763,34 +691,31 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" - integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz#aca391801ae55d19c4d8d2ebfeaa33df5f2a2cbd" + integrity sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" - integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c" + integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-simple-access" "^7.19.4" "@babel/plugin-transform-modules-systemjs@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f" - integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz#59e2a84064b5736a4471b1aa7b13d4431d327e0d" + integrity sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.19.0" + "@babel/helper-module-transforms" "^7.19.6" "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-identifier" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" @@ -824,11 +749,11 @@ "@babel/helper-replace-supers" "^7.18.6" "@babel/plugin-transform-parameters@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" - integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz#9a5aa370fdcce36f110455e9369db7afca0f9eeb" + integrity sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" @@ -837,10 +762,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-constant-elements@^7.17.12": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.9.tgz#ff6aeedd38f57ba6b41dcf824fcc8bcedb3e783f" - integrity sha512-IrTYh1I3YCEL1trjknnlLKTp5JggjzhKl/d3ibzPc97JhpFcDTr38Jdek/oX4cFbS6By0bXJcOkpRvJ5ZHK2wQ== +"@babel/plugin-transform-react-constant-elements@^7.18.12": + version "7.18.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz#edf3bec47eb98f14e84fa0af137fcc6aad8e0443" + integrity sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -859,15 +784,15 @@ "@babel/plugin-transform-react-jsx" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz#2721e96d31df96e3b7ad48ff446995d26bc028ff" - integrity sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw== + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" + integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.19.0" "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" @@ -929,13 +854,13 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.6.tgz#8f4ade1a9cf253e5cf7c7c20173082c2c08a50a7" - integrity sha512-ijHNhzIrLj5lQCnI6aaNVRtGVuUZhOXFLRVFs7lLrkXTHip4FKty5oAuQdk4tywG0/WjXmjTfQCWmuzrvFer1w== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.0.tgz#2c7ec62b8bfc21482f3748789ba294a46a375169" + integrity sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-typescript" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-typescript" "^7.20.0" "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" @@ -952,7 +877,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.18.2", "@babel/preset-env@^7.19.4": +"@babel/preset-env@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.4.tgz#4c91ce2e1f994f717efb4237891c3ad2d808c94b" integrity sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg== @@ -1044,7 +969,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.17.12", "@babel/preset-react@^7.18.6": +"@babel/preset-react@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== @@ -1056,7 +981,7 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" -"@babel/preset-typescript@^7.17.12", "@babel/preset-typescript@^7.18.6": +"@babel/preset-typescript@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== @@ -1066,13 +991,13 @@ "@babel/plugin-transform-typescript" "^7.18.6" "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" - integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" + integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== dependencies: - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.13.10" -"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3": +"@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -1081,26 +1006,26 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.18.11", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3", "@babel/traverse@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" - integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== +"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3", "@babel/traverse@^7.19.6", "@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" + integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" + "@babel/generator" "^7.20.1" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.3" - "@babel/types" "^7.19.3" + "@babel/parser" "^7.20.1" + "@babel/types" "^7.20.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" - integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.0.tgz#52c94cf8a7e24e89d2a194c25c35b17a64871479" + integrity sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -1320,6 +1245,13 @@ dependencies: jest-get-type "^28.0.2" +"@jest/expect-utils@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" + integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== + dependencies: + jest-get-type "^29.2.0" + "@jest/expect@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" @@ -1456,22 +1388,22 @@ slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/transform@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.0.tgz#1c55ca549f64810351df999265a29f8ead51be15" - integrity sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw== +"@jest/transform@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" + integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" jest-regex-util "^29.2.0" - jest-util "^29.2.0" + jest-util "^29.2.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1489,7 +1421,7 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.2.0", "@jest/types@^29.2.1": +"@jest/types@^29.2.1": version "29.2.1" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== @@ -1518,17 +1450,12 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== - -"@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== @@ -1541,7 +1468,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -1555,12 +1482,12 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" - integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" @@ -1624,9 +1551,9 @@ integrity sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg== "@sinclair/typebox@^0.24.1": - version "0.24.20" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" - integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -1647,111 +1574,111 @@ resolved "https://registry.yarnpkg.com/@stomp/stompjs/-/stompjs-6.1.2.tgz#4ac3c380e8d1de1da94a3623d404e67de69dd01e" integrity sha512-FHDTrIFM5Ospi4L3Xhj6v2+NzCVAeNDcBe95YjUWhWiRMrBF6uN3I7AUOlRgT6jU/2WQvvYK8ZaIxFfxFp+uHQ== -"@svgr/babel-plugin-add-jsx-attribute@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.0.tgz#21788f7e982aacafc805ed30a14048a1406fbabc" - integrity sha512-Cp1JR1IPrQNvPRbkfcPmax52iunBC+eQDyBce8feOIIbVH6ZpVhErYoJtPWRBj2rKi4Wi9HvCm1+L1UD6QlBmg== +"@svgr/babel-plugin-add-jsx-attribute@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba" + integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ== -"@svgr/babel-plugin-remove-jsx-attribute@^6.5.0": +"@svgr/babel-plugin-remove-jsx-attribute@*": version "6.5.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz#652bfd4ed0a0699843585cda96faeb09d6e1306e" integrity sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA== -"@svgr/babel-plugin-remove-jsx-empty-expression@^6.5.0": +"@svgr/babel-plugin-remove-jsx-empty-expression@*": version "6.5.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz#4b78994ab7d39032c729903fc2dd5c0fa4565cb8" integrity sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw== -"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.0.tgz#ca57c0a62a9c22ff11cdb475dc9a2b35586335d1" - integrity sha512-XWm64/rSPUCQ+MFyA9lhMO+w8bOZvkTvovRIU1lpIy63ysPaVAFtxjQiZj+S7QaLaLGUXkSkf8WZsaN+QPo/gA== - -"@svgr/babel-plugin-svg-dynamic-title@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.0.tgz#57c0e0409757373d641f115d33cf2559b47bff77" - integrity sha512-JIF2D2ltiWFGlTw2fJ9jJg1fNT9rWjOD2Cf0/xzeW6Z2LIRQTHcRHxpZq359+SRWtEPsCXEWV2Xmd+DMBj6dBw== - -"@svgr/babel-plugin-svg-em-dimensions@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.0.tgz#dbca40a18c308f135b4b672ea8e410855e8e3352" - integrity sha512-uuo0FfLP4Nu2zncOcoUFDzZdXWma2bxkTGk0etRThs4/PghvPIGaW8cPhCg6yJ8zpaauWcKV0wZtzKlJRCtVzg== - -"@svgr/babel-plugin-transform-react-native-svg@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.0.tgz#a5453127365b925a7f766615ef6f5cfd01018f98" - integrity sha512-VMRWyOmrV+DaEFPgP3hZMsFgs2g87ojs3txw0Rx8iz6Nf/E3UoHUwTqpkSCWd3Hsnc9gMOY9+wl6+/Ycleh1sw== - -"@svgr/babel-plugin-transform-svg-component@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.0.tgz#ec116e9223a02c6dcd9f8cb2bdbf174a3c2ef2f5" - integrity sha512-b67Ul3SelaqvGEEG/1B3VJ03KUtGFgRQjRLCCjdttMQLcYa9l/izQFEclNFx53pNqhijUMNKHPhGMY/CWGVKig== - -"@svgr/babel-preset@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.0.tgz#dc14bbe1c74e0c8c4ab77221064645b3399836db" - integrity sha512-UWM98PKVuMqw2UZo8YO3erI6nF1n7/XBYTXBqR0QhZP7HTjYK6QxFNvPfIshddy1hBdzhVpkf148Vg8xiVOtyg== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^6.5.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^6.5.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.5.0" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.0" - "@svgr/babel-plugin-svg-dynamic-title" "^6.5.0" - "@svgr/babel-plugin-svg-em-dimensions" "^6.5.0" - "@svgr/babel-plugin-transform-react-native-svg" "^6.5.0" - "@svgr/babel-plugin-transform-svg-component" "^6.5.0" - -"@svgr/core@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.0.tgz#13af3337b7b66a2b6ebe197b67b62badbe490bf1" - integrity sha512-jIbu36GMjfK8HCCQitkfVVeQ2vSXGfq0ef0GO9HUxZGjal6Kvpkk4PwpkFP+OyCzF+skQFT9aWrUqekT3pKF8w== - dependencies: - "@babel/core" "^7.18.5" - "@svgr/babel-preset" "^6.5.0" - "@svgr/plugin-jsx" "^6.5.0" +"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60" + integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg== + +"@svgr/babel-plugin-svg-dynamic-title@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4" + integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw== + +"@svgr/babel-plugin-svg-em-dimensions@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217" + integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA== + +"@svgr/babel-plugin-transform-react-native-svg@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305" + integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg== + +"@svgr/babel-plugin-transform-svg-component@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250" + integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ== + +"@svgr/babel-preset@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828" + integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1" + "@svgr/babel-plugin-remove-jsx-attribute" "*" + "@svgr/babel-plugin-remove-jsx-empty-expression" "*" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1" + "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1" + "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1" + "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" + "@svgr/babel-plugin-transform-svg-component" "^6.5.1" + +"@svgr/core@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a" + integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== + dependencies: + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" camelcase "^6.2.0" cosmiconfig "^7.0.1" -"@svgr/hast-util-to-babel-ast@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.0.tgz#0e4aebea26328e22a6fff940711472a47ec24e5c" - integrity sha512-PPy94U/EiPQ2dY0b4jEqj4QOdDRq6DG7aTHjpGaL8HlKSHkpU1DpjfywCXTJqtOdCo2FywjWvg0U2FhqMeUJaA== +"@svgr/hast-util-to-babel-ast@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2" + integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw== dependencies: - "@babel/types" "^7.18.4" - entities "^4.3.0" + "@babel/types" "^7.20.0" + entities "^4.4.0" -"@svgr/plugin-jsx@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.0.tgz#c23ba0048007f1591fe7a9b060be373e4771487b" - integrity sha512-1CHMqOBKoNk/ZPU+iGXKcQPC6q9zaD7UOI99J+BaGY5bdCztcf5bZyi0QZSDRJtCQpdofeVv7XfBYov2mtl0Pw== +"@svgr/plugin-jsx@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072" + integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw== dependencies: - "@babel/core" "^7.18.5" - "@svgr/babel-preset" "^6.5.0" - "@svgr/hast-util-to-babel-ast" "^6.5.0" + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/hast-util-to-babel-ast" "^6.5.1" svg-parser "^2.0.4" -"@svgr/plugin-svgo@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.0.tgz#1d9b7d0909bde9fe7d724569c7f7833f3a7bacd7" - integrity sha512-8Zv1Yyv6I7HlIqrqGFM0sDKQrhjbfNZJawR8UjIaVWSb0tKZP1Ra6ymhqIFu6FT6kDRD0Ct5NlQZ10VUujSspw== +"@svgr/plugin-svgo@^6.5.0", "@svgr/plugin-svgo@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84" + integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ== dependencies: cosmiconfig "^7.0.1" deepmerge "^4.2.2" svgo "^2.8.0" "@svgr/webpack@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.0.tgz#663407b826cb96a3c3394cfe1f9bd107e693770a" - integrity sha512-rM/Z4pwMhqvAXEHoHIlE4SeTb0ToQNmJuBdiHwhP2ZtywyX6XqrgCv2WX7K/UCgNYJgYbekuylgyjnuLUHTcZQ== - dependencies: - "@babel/core" "^7.18.5" - "@babel/plugin-transform-react-constant-elements" "^7.17.12" - "@babel/preset-env" "^7.18.2" - "@babel/preset-react" "^7.17.12" - "@babel/preset-typescript" "^7.17.12" - "@svgr/core" "^6.5.0" - "@svgr/plugin-jsx" "^6.5.0" - "@svgr/plugin-svgo" "^6.5.0" + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8" + integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== + dependencies: + "@babel/core" "^7.19.6" + "@babel/plugin-transform-react-constant-elements" "^7.18.12" + "@babel/preset-env" "^7.19.4" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.18.6" + "@svgr/core" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" + "@svgr/plugin-svgo" "^6.5.1" "@testing-library/dom@^8.19.0", "@testing-library/dom@^8.5.0": version "8.19.0" @@ -1807,24 +1734,24 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/aria-query@^4.2.0": version "4.2.2" @@ -1858,9 +1785,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" + integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== dependencies: "@babel/types" "^7.3.0" @@ -1907,39 +1834,44 @@ integrity sha512-awMC2n4iRwJ6VWpQDA7dPqJhImeXHsVeEoQKWkdGB2cau+h/6erGoVre5Dk8p/DL1LIiLUcK6MnC3mibiKRRFg== "@types/eslint-scope@^3.7.3": - version "3.7.3" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" - integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575" - integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA== + version "8.4.9" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.9.tgz#f7371980148697f4b582b086630319b55324b5aa" + integrity sha512-jFCSo4wJzlHQLCpceUhUnXdrPuCNOjGFMQ8Eg6JXxlz3QaCKOb7eGi2cephQdM4XTYsNej69P9JDJ1zqNIbncQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.51": +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@^0.0.51": version "0.0.51" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" - integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== + version "4.17.31" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -2004,10 +1936,18 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*", "@types/jest@^28.1.7": - version "28.1.7" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.7.tgz#a680c5d05b69634c2d54a63cb106d7fb1adaba16" - integrity sha512-acDN4VHD40V24tgu0iC44jchXavRNVFXQ/E6Z5XNsswgoSO/4NgsXoEYmPUGookKldlZQyIpmrEXsHI9cA3ZTA== +"@types/jest@*": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.1.tgz#31fda30bdf2861706abc5f1730be78bed54f83ee" + integrity sha512-nKixEdnGDqFOZkMTF74avFNr3yRqB1ZJ6sRZv5/28D5x2oLN14KApv7F9mfDT/vUic0L3tRCsh3XWpWjtJisUQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jest@^28.1.7": + version "28.1.8" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" + integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== dependencies: expect "^28.0.0" pretty-format "^28.0.0" @@ -2034,9 +1974,9 @@ "@types/lodash" "*" "@types/lodash@*": - version "4.14.182" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" - integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + version "4.14.187" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.187.tgz#122ff0a7192115b4c1a19444ab4482caa77e2c9d" + integrity sha512-MrO/xLXCaUgZy3y96C/iOsaIqZSeupyTImKClHunL5GrmaiII2VwvWmLBu2hwa0Kp0sV19CsyjtrTc/Fx8rg/A== "@types/mdast@^3.0.0": version "3.0.10" @@ -2045,30 +1985,30 @@ dependencies: "@types/unist" "*" -"@types/mdurl@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" - integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== "@types/ms@*": version "0.7.31" resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*", "@types/node@18.11.4": +"@types/node@*": + version "18.11.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" + integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + +"@types/node@18.11.4": version "18.11.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.4.tgz#7017a52e18dfaad32f55eebd539993014441949c" integrity sha512-BxcJpBu8D3kv/GZkx/gSMz6VnTJREBj/4lbzYOQueUOELkt8WrO6zAcSPmp9uRPEW/d+lUO8QK0W2xnS1hEU0A== "@types/node@^14.14.31": - version "14.18.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20" - integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig== + version "14.18.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.33.tgz#8c29a0036771569662e4635790ffa9e057db379b" + integrity sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg== "@types/parse-json@^4.0.0": version "4.0.0" @@ -2076,9 +2016,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.1.tgz#76e72d8a775eef7ce649c63c8acae1a0824bbaed" - integrity sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw== + version "2.7.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" + integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== "@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.5" @@ -2095,13 +2035,27 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@18.0.6", "@types/react-dom@^18.0.0": +"@types/react-dom@18.0.6": version "18.0.6" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== dependencies: "@types/react" "*" +"@types/react-dom@^18.0.0": + version "18.0.8" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.8.tgz#d2606d855186cd42cc1b11e63a71c39525441685" + integrity sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw== + dependencies: + "@types/react" "*" + +"@types/react-lottie@^1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@types/react-lottie/-/react-lottie-1.2.6.tgz#4f351dfdf5f93a46a3a9714fbb319f1e0f030eaf" + integrity sha512-fvGJHD7SeUdVESHo7f7erRnXkTWaa/6Mo5TB+R0/ieSftKoFspA4sMlF2qMH6BljXI7ehFJbBtrD5bzDxPCkGg== + dependencies: + "@types/react" "*" + "@types/react-redux@7.1.24": version "7.1.24" resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.24.tgz#6caaff1603aba17b27d20f8ad073e4c077e975c0" @@ -2122,9 +2076,9 @@ "@types/react-router" "*" "@types/react-router@*": - version "5.1.18" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3" - integrity sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g== + version "5.1.19" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.19.tgz#9b404246fba7f91474d7008a3d48c17b6e075ad6" + integrity sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA== dependencies: "@types/history" "^4.7.11" "@types/react" "*" @@ -2176,11 +2130,11 @@ "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== dependencies: - "@types/mime" "^1" + "@types/mime" "*" "@types/node" "*" "@types/sinonjs__fake-timers@8.1.1": @@ -2206,9 +2160,9 @@ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/testing-library__jest-dom@^5.9.1": - version "5.14.3" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz#ee6c7ffe9f8595882ee7bda8af33ae7b8789ef17" - integrity sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw== + version "5.14.5" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" + integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== dependencies: "@types/jest" "*" @@ -2240,9 +2194,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== + version "17.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" + integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== dependencies: "@types/yargs-parser" "*" @@ -2484,13 +2438,13 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" + acorn "^8.1.0" + acorn-walk "^8.0.2" acorn-import-assertions@^1.7.6: version "1.8.0" @@ -2502,25 +2456,20 @@ acorn-jsx@^5.3.1: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn-walk@^8.0.0, acorn-walk@^8.1.1: +acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== agent-base@6: version "6.0.2" @@ -2643,9 +2592,11 @@ argparse@^1.0.7: sprintf-js "~1.0.2" aria-query@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" - integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" array-flatten@1.1.1: version "1.1.1" @@ -2657,7 +2608,7 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.4, array-includes@^3.1.5: +array-includes@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== @@ -2701,9 +2652,9 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== asynckit@^0.4.0: version "0.4.0" @@ -2725,6 +2676,11 @@ autosize@^4.0.2: resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.4.tgz#924f13853a466b633b9309330833936d8bccce03" integrity sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2749,11 +2705,11 @@ babel-jest@^28.1.3: slash "^3.0.0" babel-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.0.tgz#088624f037da90e69a06073305276cbd111d68a8" - integrity sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw== + version "29.2.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" + integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== dependencies: - "@jest/transform" "^29.2.0" + "@jest/transform" "^29.2.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -2771,13 +2727,6 @@ babel-loader@^8.2.5: make-dir "^3.1.0" schema-utils "^2.6.5" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" @@ -2867,6 +2816,14 @@ babel-preset-jest@^29.2.0: babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -2914,10 +2871,10 @@ bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" content-type "~1.0.4" @@ -2927,20 +2884,20 @@ body-parser@1.20.0: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" + qs "6.11.0" raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.12.tgz#28fbd4683f5f2e36feedb833e24ba661cac960c3" - integrity sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw== + version "1.0.14" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7" + integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" fast-deep-equal "^3.1.3" - multicast-dns "^7.2.4" + multicast-dns "^7.2.5" boolbase@^1.0.0: version "1.0.0" @@ -2962,23 +2919,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserslist@^4.14.5: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== - dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" - -browserslist@^4.21.3, browserslist@^4.21.4: +browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4: version "4.21.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== @@ -3081,15 +3022,10 @@ camelcase@^7.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.0.tgz#fd112621b212126741f998d614cbc2a8623fd174" integrity sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ== -caniuse-lite@^1.0.30001332: - version "1.0.30001342" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz#87152b1e3b950d1fbf0093e23f00b6c8e8f1da96" - integrity sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA== - caniuse-lite@^1.0.30001400: - version "1.0.30001406" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz#d0146e7919635479f873b4507517b627f66ab269" - integrity sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg== + version "1.0.30001429" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz#70cdae959096756a85713b36dd9cb82e62325639" + integrity sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg== caseless@~0.12.0: version "0.12.0" @@ -3127,9 +3063,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== check-more-types@^2.24.0: version "2.24.0" @@ -3157,9 +3093,9 @@ chrome-trace-event@^1.0.2: integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== ci-info@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" - integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== + version "3.5.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" + integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -3167,9 +3103,9 @@ cjs-module-lexer@^1.0.0: integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== clean-css@^5.2.2: - version "5.3.0" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59" - integrity sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ== + version "5.3.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" + integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== dependencies: source-map "~0.6.0" @@ -3186,9 +3122,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-table3@~0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" optionalDependencies: @@ -3202,13 +3138,13 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" clone-deep@^4.0.1: @@ -3223,7 +3159,7 @@ clone-deep@^4.0.1: co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== collect-v8-coverage@^1.0.0: version "1.0.1" @@ -3247,7 +3183,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -3255,9 +3191,9 @@ color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" @@ -3304,7 +3240,7 @@ common-tags@^1.8.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compressible@~2.0.16: version "2.0.18" @@ -3329,12 +3265,12 @@ compression@^1.7.4: computed-style@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/computed-style/-/computed-style-0.1.4.tgz#7f344fd8584b2e425bedca4a1afc0e300bb05d74" - integrity sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ= + integrity sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== connect-history-api-fallback@^2.0.0: version "2.0.0" @@ -3354,16 +3290,14 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== cookie@0.5.0: version "0.5.0" @@ -3383,26 +3317,31 @@ copy-webpack-plugin@^11.0.0: serialize-javascript "^6.0.0" core-js-compat@^3.25.1: - version "3.25.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138" - integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ== + version "3.26.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.26.0.tgz#94e2cf8ba3e63800c4956ea298a6473bc9d62b44" + integrity sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A== dependencies: browserslist "^4.21.4" core-js-pure@^3.23.3: - version "3.25.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.5.tgz#79716ba54240c6aa9ceba6eee08cf79471ba184d" - integrity sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg== + version "3.26.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.26.0.tgz#7ad8a5dd7d910756f3124374b50026e23265ca9a" + integrity sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA== core-js@3.25.5: version "3.25.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.5.tgz#e86f651a2ca8a0237a5f064c2fe56cef89646e27" integrity sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw== +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" @@ -3475,7 +3414,7 @@ css-what@^6.0.1: css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssesc@^3.0.0: version "3.0.0" @@ -3507,9 +3446,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" - integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" + integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== cypress@10.10.0: version "10.10.0" @@ -3562,7 +3501,7 @@ cypress@10.10.0: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" @@ -3576,9 +3515,9 @@ data-urls@^3.0.2: whatwg-url "^11.0.0" dayjs@^1.10.4: - version "1.11.2" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5" - integrity sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw== + version "1.11.6" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb" + integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ== debug@2.6.9: version "2.6.9" @@ -3601,22 +3540,43 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -decimal.js@^10.3.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== +decimal.js@^10.4.1: + version "10.4.2" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" + integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-equal@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" + integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== + dependencies: + call-bind "^1.0.0" + es-get-iterator "^1.1.1" + get-intrinsic "^1.0.1" + is-arguments "^1.0.4" + is-date-object "^1.0.2" + is-regex "^1.1.1" + isarray "^2.0.5" + object-is "^1.1.4" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.3" + which-boxed-primitive "^1.0.1" + which-collection "^1.0.1" + which-typed-array "^1.1.2" deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" @@ -3651,7 +3611,7 @@ define-properties@^1.1.3, define-properties@^1.1.4: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" @@ -3661,12 +3621,12 @@ depd@2.0.0: depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== destroy@1.2.0: version "1.2.0" @@ -3688,6 +3648,11 @@ diff-sequences@^28.1.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +diff-sequences@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" + integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -3708,12 +3673,12 @@ dir-glob@^3.0.1: dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== dns-packet@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" - integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== + version "5.4.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" + integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -3820,7 +3785,7 @@ duplexer@^0.1.2: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -3828,17 +3793,12 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.4.118: - version "1.4.138" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.138.tgz#3ec41ca589aaf505dfe2034fde913329af801730" - integrity sha512-IOyp2Seq3w4QLln+yZWcMF3VXhhduz4bwg9gfI+CnP5TkzwNXQ8FCZuwwPsnes73AfWdf5J2n2OXdUwDUspDPQ== + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.251: - version "1.4.254" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz#c6203583890abf88dfc0be046cd72d3b48f8beb6" - integrity sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q== + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== emittery@^0.10.2: version "0.10.2" @@ -3863,7 +3823,7 @@ emojis-list@^3.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== end-of-stream@^1.1.0: version "1.4.4" @@ -3892,10 +3852,10 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" - integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== +entities@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== envinfo@^7.7.3: version "7.8.1" @@ -3910,66 +3870,56 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" error-stack-parser@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57" - integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA== + version "2.1.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== dependencies: - stackframe "^1.1.1" + stackframe "^1.3.4" -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.19.2, es-abstract@^1.19.5: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" + get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" - is-callable "^1.2.4" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" + object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" +es-get-iterator@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" @@ -3999,12 +3949,12 @@ escalade@^3.1.1: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" @@ -4172,7 +4122,7 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eventemitter2@6.4.7: version "6.4.7" @@ -4229,12 +4179,12 @@ executable@^4.1.1: exenv@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" - integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50= + integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== expect@^28.0.0, expect@^28.1.3: version "28.1.3" @@ -4247,14 +4197,25 @@ expect@^28.0.0, expect@^28.1.3: jest-message-util "^28.1.3" jest-util "^28.1.3" +expect@^29.0.0: + version "29.2.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" + integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== + dependencies: + "@jest/expect-utils" "^29.2.2" + jest-get-type "^29.2.0" + jest-matcher-utils "^29.2.2" + jest-message-util "^29.2.1" + jest-util "^29.2.1" + express@^4.17.3: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.0" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.5.0" @@ -4273,7 +4234,7 @@ express@^4.17.3: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.10.3" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.18.0" @@ -4303,7 +4264,7 @@ extract-zip@2.0.1: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" @@ -4316,9 +4277,9 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4334,12 +4295,12 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-sta fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: version "1.13.0" @@ -4356,16 +4317,16 @@ faye-websocket@^0.11.3: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" @@ -4445,19 +4406,26 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== follow-redirects@^1.0.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@^4.0.0: version "4.0.0" @@ -4485,7 +4453,7 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-extra@^9.1.0: version "9.1.0" @@ -4497,7 +4465,7 @@ fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-monkey@1.0.3: +fs-monkey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== @@ -4505,7 +4473,7 @@ fs-monkey@1.0.3: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" @@ -4530,7 +4498,7 @@ function.prototype.name@^1.1.5: functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== functions-have-names@^1.2.2: version "1.2.3" @@ -4547,14 +4515,14 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-package-type@^0.1.0: version "0.1.0" @@ -4591,7 +4559,7 @@ getos@^3.2.1: getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" @@ -4647,9 +4615,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" @@ -4666,9 +4634,9 @@ globby@^11.0.3: slash "^3.0.0" globby@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.1.tgz#7c44a93869b0b7612e38f22ed532bfe37b25ea6f" - integrity sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q== + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: dir-glob "^3.0.1" fast-glob "^3.2.11" @@ -4677,9 +4645,9 @@ globby@^13.1.1: slash "^4.0.0" google-protobuf@^3.6.1: - version "3.20.1" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.20.1.tgz#1b255c2b59bcda7c399df46c65206aa3c7a0ce8b" - integrity sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw== + version "3.21.2" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" + integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" @@ -4711,7 +4679,7 @@ has-bigints@^1.0.1, has-bigints@^1.0.2: has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" @@ -4764,7 +4732,7 @@ hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== dependencies: inherits "^2.0.1" obuf "^1.0.0" @@ -4832,7 +4800,7 @@ htmlparser2@^6.1.0: http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== http-errors@2.0.0: version "2.0.0" @@ -4848,7 +4816,7 @@ http-errors@2.0.0: http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== dependencies: depd "~1.1.2" inherits "2.0.3" @@ -4856,9 +4824,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" - integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== http-proxy-agent@^5.0.0: version "5.0.0" @@ -4945,7 +4913,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: identity-obj-proxy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== dependencies: harmony-reflect "^1.4.6" @@ -4965,9 +4933,9 @@ ignore@^5.1.8, ignore@^5.2.0: integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== immer@^9.0.7: - version "9.0.14" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.14.tgz#e05b83b63999d26382bb71676c9d827831248a48" - integrity sha512-ubBeqQutOSLIFCUBN03jGeOS6a3DoYlSYwYJTa+gSKEZKU5redJIqkIdZ3JVv/4RZpfcXdAWH5zCNLWPRv2WDw== + version "9.0.16" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.16.tgz#8e7caab80118c2b54b37ad43e05758cdefad0198" + integrity sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ== immutable@^4.0.0: version "4.1.0" @@ -4993,7 +4961,7 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" @@ -5003,7 +4971,7 @@ indent-string@^4.0.0: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -5016,7 +4984,7 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@2.0.0: version "2.0.0" @@ -5052,10 +5020,18 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== +is-arguments@^1.0.4, is-arguments@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" @@ -5084,10 +5060,10 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^3.0.0: version "3.0.1" @@ -5096,14 +5072,14 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.2.0, is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -5118,7 +5094,7 @@ is-docker@^2.0.0, is-docker@^2.1.1: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -5145,7 +5121,12 @@ is-installed-globally@~0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" -is-negative-zero@^2.0.1, is-negative-zero@^2.0.2: +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== @@ -5173,9 +5154,9 @@ is-plain-obj@^3.0.0: integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-plain-object@^2.0.4: version "2.0.4" @@ -5189,7 +5170,7 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.1.4: +is-regex@^1.1.1, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -5197,7 +5178,12 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-shared-array-buffer@^1.0.1, is-shared-array-buffer@^1.0.2: +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== @@ -5223,23 +5209,47 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakref@^1.0.1, is-weakref@^1.0.2: +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -5247,20 +5257,25 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== isomorphic-fetch@^3.0.0: version "3.0.0" @@ -5273,7 +5288,7 @@ isomorphic-fetch@^3.0.0: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" @@ -5281,9 +5296,9 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" - integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -5310,9 +5325,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -5406,6 +5421,16 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-diff@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" + integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.2.0" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" + jest-docblock@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" @@ -5455,6 +5480,11 @@ jest-get-type@^28.0.2: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +jest-get-type@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" + integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== + jest-haste-map@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" @@ -5474,20 +5504,20 @@ jest-haste-map@^28.1.3: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.0.tgz#2410f2ec93958e0bd894818de6c8056eb1b4d6fc" - integrity sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg== +jest-haste-map@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" + integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.2.0" - jest-worker "^29.2.0" + jest-util "^29.2.1" + jest-worker "^29.2.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -5511,6 +5541,16 @@ jest-matcher-utils@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-matcher-utils@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" + integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== + dependencies: + chalk "^4.0.0" + jest-diff "^29.2.1" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" + jest-message-util@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" @@ -5692,7 +5732,7 @@ jest-util@^28.0.0, jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.2.0, jest-util@^29.2.1: +jest-util@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== @@ -5748,13 +5788,13 @@ jest-worker@^28.1.3: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.0.tgz#b2bd1a81fc7a1ae79a500b05f5feb0d1c0b1a19e" - integrity sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A== +jest-worker@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" + integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== dependencies: "@types/node" "*" - jest-util "^29.2.0" + jest-util "^29.2.1" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -5784,20 +5824,20 @@ js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsdom@^20.0.0: - version "20.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.0.tgz#882825ac9cc5e5bbee704ba16143e1fa78361ebf" - integrity sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA== + version "20.0.2" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.2.tgz#65ccbed81d5e877c433f353c58bb91ff374127db" + integrity sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA== dependencies: abab "^2.0.6" - acorn "^8.7.1" - acorn-globals "^6.0.0" + acorn "^8.8.0" + acorn-globals "^7.0.0" cssom "^0.5.0" cssstyle "^2.3.0" data-urls "^3.0.2" - decimal.js "^10.3.1" + decimal.js "^10.4.1" domexception "^4.0.0" escodegen "^2.0.0" form-data "^4.0.0" @@ -5805,18 +5845,17 @@ jsdom@^20.0.0: http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.1" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "^7.0.0" + nwsapi "^2.2.2" + parse5 "^7.1.1" saxes "^6.0.0" symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" + tough-cookie "^4.1.2" w3c-xmlserializer "^3.0.0" webidl-conversions "^7.0.0" whatwg-encoding "^2.0.0" whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" - ws "^8.8.0" + ws "^8.9.0" xml-name-validator "^4.0.0" jsesc@^2.5.1: @@ -5827,7 +5866,7 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" @@ -5852,12 +5891,12 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.1: version "1.0.1" @@ -5891,12 +5930,12 @@ jsprim@^2.0.2: verror "1.10.0" "jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz#e624f259143b9062c92b6413ff92a164c80d3ccb" - integrity sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q== + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== dependencies: - array-includes "^3.1.4" - object.assign "^4.1.2" + array-includes "^3.1.5" + object.assign "^4.1.3" kind-of@^6.0.2: version "6.0.3" @@ -5909,9 +5948,9 @@ kleur@^3.0.3: integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== klona@^2.0.4: version "2.0.5" @@ -5921,7 +5960,7 @@ klona@^2.0.4: lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== leven@^3.1.0: version "3.1.0" @@ -5939,7 +5978,7 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -5947,7 +5986,7 @@ levn@~0.3.0: line-height@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/line-height/-/line-height-0.3.1.tgz#4b1205edde182872a5efa3c8f620b3187a9c54c9" - integrity sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk= + integrity sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w== dependencies: computed-style "~0.1.3" @@ -5995,9 +6034,9 @@ loader-utils@^1.1.0: json5 "^1.0.1" loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + version "2.0.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.3.tgz#d4b15b8504c63d1fc3f2ade52d41bc8459d6ede1" + integrity sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -6025,12 +6064,12 @@ lodash-es@^4.17.15, lodash-es@^4.17.21: lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.merge@^4.6.2: version "4.6.2" @@ -6040,12 +6079,12 @@ lodash.merge@^4.6.2: lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== lodash@^4.0.1, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" @@ -6077,6 +6116,11 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lottie-web@^5.1.3: + version "5.9.6" + resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.9.6.tgz#62ae68563355d3e04aa75d53dec3dd4bea0e57c9" + integrity sha512-JFs7KsHwflugH5qIXBpB4905yC1Sub2MZWtl/elvO/QC6qj1ApqbUZJyjzJseJUtVpgiDaXQLjBlIJGS7UUUXA== + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -6094,7 +6138,7 @@ lru-cache@^6.0.0: lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ== make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" @@ -6126,13 +6170,13 @@ material-colors@^1.2.1: integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== mdast-util-definitions@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" - integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" + integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - unist-util-visit "^3.0.0" + unist-util-visit "^4.0.0" mdast-util-from-markdown@^1.0.0: version "1.2.0" @@ -6153,16 +6197,15 @@ mdast-util-from-markdown@^1.0.0: uvu "^0.5.0" mdast-util-to-hast@^12.1.0: - version "12.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz#89a2bb405eaf3b05eb8bf45157678f35eef5dbca" - integrity sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw== + version "12.2.4" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.4.tgz#34c1ef2b6cf01c27b3e3504e2c977c76f722e7e1" + integrity sha512-a21xoxSef1l8VhHxS1Dnyioz6grrJkoaCUgGzMD/7dWHvboYX3VW53esRUfB5tgTyz4Yos1n25SPcj35dJqmAg== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" - "@types/mdurl" "^1.0.0" mdast-util-definitions "^5.0.0" - mdurl "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" unist-builder "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" @@ -6178,27 +6221,22 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.3.tgz#fc08ac32363b6ea6c95381cabb4d67838180d4e1" - integrity sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg== + version "3.4.9" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.9.tgz#403bb953776d72fef4e39e1197a25ffa156d143a" + integrity sha512-3rm8kbrzpUGRyPKSGuk387NZOwQ90O4rI9tsWQkzNW7BLSnKGp23RsEsKK8N8QVCrtJoAMqy3spxHC4os4G6PQ== dependencies: - fs-monkey "1.0.3" + fs-monkey "^1.0.3" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" @@ -6213,7 +6251,7 @@ merge2@^1.3.0, merge2@^1.4.1: methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromark-core-commonmark@^1.0.1: version "1.0.6" @@ -6340,9 +6378,9 @@ micromark-util-encode@^1.0.0: integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== micromark-util-html-tag-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" - integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== micromark-util-normalize-identifier@^1.0.0: version "1.0.0" @@ -6358,10 +6396,10 @@ micromark-util-resolve-all@^1.0.0: dependencies: micromark-util-types "^1.0.0" -micromark-util-sanitize-uri@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" - integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" + integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== dependencies: micromark-util-character "^1.0.0" micromark-util-encode "^1.0.0" @@ -6388,9 +6426,9 @@ micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== micromark@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" - integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" + integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -6443,7 +6481,7 @@ mimic-fn@^2.1.0: min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== dependencies: dom-walk "^0.1.0" @@ -6475,14 +6513,14 @@ mri@^1.1.0: integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== mrmime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" - integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -6494,7 +6532,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns@^7.2.4: +multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== @@ -6510,7 +6548,7 @@ nanoid@^3.3.4: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" @@ -6545,12 +6583,7 @@ node-forge@^1: node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-releases@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.6: version "2.0.6" @@ -6576,39 +6609,42 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== +nwsapi@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" + integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.11.0: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-inspect@^1.12.0, object-inspect@^1.9.0: - version "1.12.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.1.tgz#28a661153bad7e470e4b01479ef1cb91ce511191" - integrity sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA== +object-is@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.2, object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" object.entries@^1.1.5: @@ -6666,7 +6702,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -6718,7 +6754,7 @@ optionator@^0.9.1: ospath@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= + integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== p-limit@^2.2.0: version "2.3.0" @@ -6793,12 +6829,12 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" - integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== +parse5@^7.0.0, parse5@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" + integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== dependencies: - entities "^4.3.0" + entities "^4.4.0" parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" @@ -6821,14 +6857,14 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -6836,7 +6872,7 @@ path-parse@^1.0.6, path-parse@^1.0.7: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-type@^4.0.0: version "4.0.0" @@ -6846,12 +6882,12 @@ path-type@^4.0.0: pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0: version "1.0.0" @@ -6866,7 +6902,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pirates@^4.0.4: version "4.0.5" @@ -6922,9 +6958,9 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.7: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + version "8.4.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" + integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -6943,7 +6979,7 @@ prelude-ls@^1.2.1: prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prettier@^2.7.1: version "2.7.1" @@ -6982,7 +7018,7 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.2.1: +pretty-format@^29.0.0, pretty-format@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== @@ -6999,7 +7035,7 @@ process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.0: version "2.0.3" @@ -7039,12 +7075,12 @@ proxy-addr@~2.0.7: proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pump@^3.0.0: version "3.0.0" @@ -7059,10 +7095,10 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" @@ -7071,6 +7107,11 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -7175,6 +7216,14 @@ react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== +react-lottie@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/react-lottie/-/react-lottie-1.2.3.tgz#8544b96939e088658072eea5e12d912cdaa3acc1" + integrity sha512-qLCERxUr8M+4mm1LU0Ruxw5Y5Fn/OmYkGfnA+JDM/dZb3oKwVAJCjwnjkj9TMHtzR2U6sMEUD3ZZ1RaHagM7kA== + dependencies: + babel-runtime "^6.26.0" + lottie-web "^5.1.3" + react-markdown@^8.0.2: version "8.0.3" resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.3.tgz#e8aba0d2f5a1b2124d476ee1fff9448a2f57e4b3" @@ -7197,9 +7246,9 @@ react-markdown@^8.0.2: vfile "^5.0.0" react-modal@^3.14.4: - version "3.15.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.15.1.tgz#950ce67bfef80971182dd0ed38f2d9b1a681288b" - integrity sha512-duB9bxOaYg7Zt6TMFldIFxQRtSP+Dg3F1ZX3FXxSUn+3tZZ/9JCgeAQKDg7rhZSAqopq8TFRw3yIbnx77gyFTw== + version "3.16.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" + integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== dependencies: exenv "^1.2.0" prop-types "^15.7.2" @@ -7325,10 +7374,10 @@ redux@^4.0.0, redux@^4.1.2, redux@^4.2.0: dependencies: "@babel/runtime" "^7.9.2" -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== dependencies: regenerate "^1.4.2" @@ -7337,10 +7386,15 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.9: + version "0.13.10" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" + integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== regenerator-transform@^0.15.0: version "0.15.0" @@ -7349,7 +7403,7 @@ regenerator-transform@^0.15.0: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -7364,33 +7418,33 @@ regexpp@^3.1.0: integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" - integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== + version "5.2.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.1.tgz#a69c26f324c1e962e9ffd0b88b055caba8089139" + integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" + regenerate-unicode-properties "^10.1.0" + regjsgen "^0.7.1" + regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== +regjsgen@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" + integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== remark-parse@^10.0.0: version "10.0.1" @@ -7425,14 +7479,14 @@ renderkid@^3.0.0: request-progress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= + integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== dependencies: throttleit "^1.0.0" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" @@ -7442,7 +7496,7 @@ require-from-string@^2.0.2: requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== reselect@4.1.6, reselect@^4.1.5: version "4.1.6" @@ -7472,21 +7526,22 @@ resolve.exports@^1.1.0: integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== resolve@^1.14.2, resolve@^1.20.0, resolve@^1.9.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.3: - version "2.0.0-next.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" restore-cursor@^3.1.0: version "3.1.0" @@ -7526,9 +7581,9 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" rxjs@^7.5.1: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== + version "7.5.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" + integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== dependencies: tslib "^2.1.0" @@ -7549,15 +7604,24 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass-loader@^13.0.2: - version "13.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.0.2.tgz#e81a909048e06520e9f2ff25113a801065adb3fe" - integrity sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q== + version "13.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.1.0.tgz#e5b9acf14199a9bc6eaed7a0b8b23951c2cebf6f" + integrity sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ== dependencies: klona "^2.0.4" neo-async "^2.6.2" @@ -7624,7 +7688,7 @@ schema-utils@^4.0.0: select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== selfsigned@^2.1.1: version "2.1.1" @@ -7639,9 +7703,9 @@ semver@5.6.0: integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -7679,7 +7743,7 @@ serialize-javascript@^6.0.0: serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== dependencies: accepts "~1.3.4" batch "0.6.1" @@ -7733,7 +7797,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.4: +side-channel@^1.0.3, side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== @@ -7833,9 +7897,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== space-separated-tokens@^2.0.0: version "2.0.1" @@ -7868,7 +7932,7 @@ spdy@^4.0.2: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.14.1: version "1.17.0" @@ -7897,10 +7961,10 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -stackframe@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1" - integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg== +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== statuses@2.0.1: version "2.0.1" @@ -7910,7 +7974,7 @@ statuses@2.0.1: "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== string-length@^4.0.1: version "4.0.2" @@ -7943,7 +8007,7 @@ string.prototype.matchall@^4.0.7: regexp.prototype.flags "^1.4.1" side-channel "^1.0.4" -string.prototype.trimend@^1.0.4, string.prototype.trimend@^1.0.5: +string.prototype.trimend@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== @@ -7952,7 +8016,7 @@ string.prototype.trimend@^1.0.4, string.prototype.trimend@^1.0.5: define-properties "^1.1.4" es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4, string.prototype.trimstart@^1.0.5: +string.prototype.trimstart@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== @@ -8038,9 +8102,9 @@ supports-color@^8.0.0, supports-color@^8.1.1: has-flag "^4.0.0" supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -8074,9 +8138,9 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^6.0.9: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -8109,9 +8173,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.6: terser "^5.14.1" terser@^5.10.0, terser@^5.14.1: - version "5.14.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" - integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== + version "5.15.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" + integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -8130,17 +8194,17 @@ test-exclude@^6.0.0: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g== through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== thunky@^1.0.2: version "1.1.0" @@ -8167,7 +8231,7 @@ tmpl@1.0.5: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -8186,14 +8250,15 @@ totalist@^1.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== +tough-cookie@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" + integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== dependencies: psl "^1.1.33" punycode "^2.1.1" - universalify "^0.1.2" + universalify "^0.2.0" + url-parse "^1.5.3" tough-cookie@~2.5.0: version "2.5.0" @@ -8213,7 +8278,12 @@ tr46@^3.0.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trough@^2.0.0: version "2.1.0" @@ -8259,9 +8329,9 @@ tslib@^1.8.1: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3, tslib@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== tsutils@3.21.0, tsutils@^3.21.0: version "3.21.0" @@ -8273,14 +8343,14 @@ tsutils@3.21.0, tsutils@^3.21.0: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -8292,7 +8362,7 @@ type-check@^0.4.0, type-check@~0.4.0: type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" @@ -8334,7 +8404,7 @@ typescript@^4.8.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== -unbox-primitive@^1.0.1, unbox-primitive@^1.0.2: +unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== @@ -8363,9 +8433,9 @@ unicode-match-property-value-ecmascript@^2.0.0: integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== unified@^10.0.0: version "10.1.2" @@ -8411,44 +8481,27 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" - integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit-parents@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" - integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" - integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== +unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" unist-util-visit@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" - integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" + integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" + unist-util-visit-parents "^5.1.1" -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: version "2.0.0" @@ -8458,7 +8511,7 @@ universalify@^2.0.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== untildify@^4.0.0: version "4.0.0" @@ -8466,9 +8519,9 @@ untildify@^4.0.0: integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== update-browserslist-db@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" - integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -8489,25 +8542,33 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + use-sync-external-store@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz#3343c3fe7f7e404db70f8c687adf5c1652d34e82" - integrity sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^8.3.2: version "8.3.2" @@ -8515,9 +8576,9 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== dependencies: dequal "^2.0.0" diff "^5.0.0" @@ -8546,12 +8607,12 @@ v8-to-istanbul@^9.0.1: vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -8566,9 +8627,9 @@ vfile-message@^3.0.0: unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" - integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== + version "5.3.5" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.5.tgz#ec2e206b1414f561c85b7972bb1eeda8ab47ee61" + integrity sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -8578,14 +8639,7 @@ vfile@^5.0.0: void-elements@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== w3c-xmlserializer@^3.0.0: version "3.0.0" @@ -8626,7 +8680,7 @@ wbuf@^1.1.0, wbuf@^1.7.3: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^7.0.0: version "7.0.0" @@ -8634,9 +8688,9 @@ webidl-conversions@^7.0.0: integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== webpack-bundle-analyzer@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.1.tgz#bee2ee05f4ba4ed430e4831a319126bb4ed9f5a6" - integrity sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw== + version "4.7.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz#33c1c485a7fcae8627c547b5c3328b46de733c66" + integrity sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg== dependencies: acorn "^8.0.4" acorn-walk "^8.0.0" @@ -8797,12 +8851,12 @@ whatwg-url@^11.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: +which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -8813,6 +8867,28 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -8851,25 +8927,25 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" ws@^7.3.1: - version "7.5.7" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.4.2, ws@^8.8.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== +ws@^8.4.2, ws@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51" + integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw== xml-name-validator@^4.0.0: version "4.0.0" @@ -8897,16 +8973,16 @@ yaml@^1.10.0: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^21.0.0, yargs-parser@^21.0.1: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + version "17.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" + integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" @@ -8917,7 +8993,7 @@ yargs@^17.3.1: yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" From ff590091b91c6c1abdff25cbc5d355eb6d60cea6 Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Thu, 3 Nov 2022 14:39:04 +0100 Subject: [PATCH 10/28] fixes for rasa and ibm (#3911) --- .../helm/templates/deployment.yaml | 6 ++-- .../SetConfigInputs/SetConfigInputs.tsx | 5 ++-- lib/typescript/translations/translations.ts | 28 ++++++------------- 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/backend/components/ibm-watson-assistant/helm/templates/deployment.yaml b/backend/components/ibm-watson-assistant/helm/templates/deployment.yaml index 5d67f8cc61..c65c2888b2 100644 --- a/backend/components/ibm-watson-assistant/helm/templates/deployment.yaml +++ b/backend/components/ibm-watson-assistant/helm/templates/deployment.yaml @@ -35,17 +35,17 @@ spec: - name: IBMWATSONASSISTANT_URL valueFrom: configMapKeyRef: - key: ibm-watson-assistant.URL + key: ibmWatsonAssistantURL name: {{ .Values.component }} - name: IBMWATSONASSISTANT_APIKEY valueFrom: configMapKeyRef: - key: ibm-watson-assistant.apiKey + key: ibmWatsonAssistantApiKey name: {{ .Values.component }} - name: IBMWATSONASSISTANT_ASSISTANTID valueFrom: configMapKeyRef: - key: ibm-watson-assistant.assistantId + key: ibmWatsonAssistantAssistantId name: {{ .Values.component }} - name: SERVICE_NAME value: {{ .Values.component }} diff --git a/frontend/control-center/src/pages/Connectors/ConfigureConnector/SetConfigInputs/SetConfigInputs.tsx b/frontend/control-center/src/pages/Connectors/ConfigureConnector/SetConfigInputs/SetConfigInputs.tsx index 6b373f8028..697c299254 100644 --- a/frontend/control-center/src/pages/Connectors/ConfigureConnector/SetConfigInputs/SetConfigInputs.tsx +++ b/frontend/control-center/src/pages/Connectors/ConfigureConnector/SetConfigInputs/SetConfigInputs.tsx @@ -51,12 +51,13 @@ export const SetConfigInputs = (props: SetConfigInputsProps) => { } const label = replacedKey.charAt(0).toUpperCase() + replacedKey.slice(1); - const placeholder = `${replacedKey.charAt(0).toUpperCase() + replacedKey.slice(1)}`; + const defaultPlaceholder = `${replacedKey.charAt(0).toUpperCase() + replacedKey.slice(1)}`; const capitalSource = source?.charAt(0).toUpperCase() + source?.slice(1).replace('.', ''); const isUrl = label.includes('URL'); const hasSteps = source === Source.dialogflow && replacedKey.includes('Level'); const stepPlaceholder = `0.1 ${t('to')} 0.9`; const sensitive = label.includes('Token') || label.includes('Password') || label.includes('Secret'); + const placeholder = source === 'rasa' ? t(`rasaPlaceholder`) : hasSteps ? stepPlaceholder : defaultPlaceholder; inputArr.push(
@@ -69,7 +70,7 @@ export const SetConfigInputs = (props: SetConfigInputsProps) => { value={valueTyped === 'string' || valueTyped === 'optionalString' ? '' : valueTyped} onChange={(e: React.ChangeEvent) => setInput({...input, [keyTyped]: e.target.value})} label={label} - placeholder={hasSteps ? stepPlaceholder : placeholder} + placeholder={placeholder} showLabelIcon tooltipText={t(`inputTooltip${capitalSource}${toolTip}`)} required={valueTyped !== 'optionalString'} diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index 4083397f84..9c398633c0 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -356,9 +356,8 @@ const resources = { inputTooltipSalesforceSecurityToken: 'Your Salesforce Security Token', //Rasa - inputTooltipRasaWebhookUrl: 'Example: http://webhooks.rasa', - inputTooltipRasaApiHost: 'Your Rasa Api Host', - inputTooltipRasaToken: 'Your Rasa Token', + inputTooltipRasaRasaWebhookUrl: 'http://: (example: htpp://localhost:5005)', + rasaPlaceholder: 'http://:', //Facebook Messenger connectMessenger: 'Connect Messenger', @@ -923,9 +922,8 @@ const resources = { inputTooltipSalesforceSecurityToken: 'Ihr Salesforce-Sicherheitstoken', //Rasa - inputTooltipRasaWebhookUrl: 'Beispiel: http://webhooks.rasa', - inputTooltipRasaApiHost: 'Ihr Rasa Api Host', - inputTooltipRasaToken: 'Ihr Rasa-Token', + inputTooltipRasaRasaRestWebhookUrl: 'http://: (Beispiel: htpp://localhost:5005)', + rasaPlaceholder: 'http://:', //WhatsApp Business Cloud whatsappDescription: 'Weltweite Chat-App Nr. 1', @@ -1221,7 +1219,7 @@ const resources = { //Status all: 'Tous', open: 'Ouvert', - openCatalog: 'Ouvert', + openCatalog: 'Ouvrir', closed: 'Fermé', //Message @@ -1629,12 +1627,8 @@ const resources = { send: 'Envoyer', //Rasa - rasaWebhookPlaceholder: 'URL Webhook de Rasa', - rasaWebhookTooltip: 'Exemple : http://webhooks.rasa', - rasaApihostPlaceholder: `Hôte de l'API Rasa`, - rasaApihostTooltip: `Hôte de l'API Rasa`, - rasaTokenPlaceholder: 'Token Rasa', - rasaTokenTooltip: 'Token Rasa', + inputTooltipRasaRasaRestWebhookUrl: 'http://: (example: htpp://localhost:5005)', + rasaPlaceholder: 'http://:', //Whatsapp Business Cloud whatsappBusinessCloudAppIdPlaceholder: 'Votre App ID', @@ -2196,12 +2190,8 @@ const resources = { send: 'Enviar', //Rasa - rasaWebhookPlaceholder: 'Su Url de Rasa Webhook', - rasaWebhookTooltip: 'Ejemplo: http://webhooks.rasa', - rasaApihostPlaceholder: 'Su anfitrión Rasa Api', - rasaApihostTooltip: 'Su anfitrión Rasa Api', - rasaTokenPlaceholder: 'Su ficha Rasa', - rasaTokenTooltip: 'Su ficha Rasa', + inputTooltipRasaRasaRestWebhookUrl: 'host + port (ejemplo: http://0.0.0.0:5005)', + rasaPlaceholder: 'http://:', //Whatsapp Business Cloud whatsappBusinessCloudAppIdPlaceholder: 'Su App ID', From d7e1f579e914096d357f0986d59a9fed61e5c6fc Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Thu, 3 Nov 2022 16:01:23 +0100 Subject: [PATCH 11/28] [#3819] docs for ibm watson assistant (#3889) * docs for ibm watson * docs improvements --- docs/docs/integrations/cognigy-ai.md | 32 +++-- .../docs/integrations/ibm-watson-assistant.md | 117 ++++++++++++++++++ .../integrations/installation-options.mdx | 9 ++ docs/sidebars.js | 1 + .../ibmWatsonAssistant/messagingExample.png | Bin 0 -> 70955 bytes 5 files changed, 147 insertions(+), 12 deletions(-) create mode 100644 docs/docs/integrations/ibm-watson-assistant.md create mode 100644 docs/docs/integrations/installation-options.mdx create mode 100644 docs/static/img/integrations/ibmWatsonAssistant/messagingExample.png diff --git a/docs/docs/integrations/cognigy-ai.md b/docs/docs/integrations/cognigy-ai.md index 411aced25e..91234e593a 100644 --- a/docs/docs/integrations/cognigy-ai.md +++ b/docs/docs/integrations/cognigy-ai.md @@ -15,10 +15,21 @@ Cognigy.AI was developed in order to overcome most of the challenges in building +Integrating [Cognigy.AI](https://docs.cognigy.com/ai/platform-overview/) with your Airy Core instance enables you to leverage its conversational AI capabilities on all your instance's channels. + +When [Cognigy.AI](https://docs.cognigy.com/ai/platform-overview/) is integrated with an Airy Core instance, Airy Core will forward the messages to the Cognigy.AI agent's installation, which will respond to the Airy Core API according to its conversation flow. + :::tip What you will learn -- The required steps to configure your Cognigy.AI agent -- How to connect Cognigy.AI to Airy Core +- How to configure your Cognigy.AI agent +- How to connect Cognigy.AI to your Airy Core instance + +::: + +:::note Prerequisites + +- A running Airy Core installation (refer to the [Get + Started section](getting-started/installation/introduction.md)) ::: @@ -89,11 +100,9 @@ Congratulations! You are now ready to connect Cognigy.AI to your Airy Core insta
-Connecting Cognigy.AI to your Airy Core instance can be done through API request or -through the [Airy Control Center UI](/ui/control-center/introduction). +import InstallationOptions from './installation-options.mdx' -We cover both options in this section: keep reading for connecting Cognigy.AI via -API request, scroll down to the next section for connecting Cognigy.AI via the [Airy Control Center UI](/ui/control-center/introduction). + ## Step 6 (option 1): Install and configure Cognigy.AI to your Airy instance via API request @@ -103,11 +112,11 @@ The request body should be: ```json { - "name": "airy-core/cognigy-connector" + "name": "cognigy-connector" } ``` -Once the installation is successful, you can configure the component with the [Components Update](/api/endpoints/components#update) endpoint. +Once the installation is successful (indicated by a 201 response status code), you can configure the component with the [Components Update](/api/endpoints/components#update) endpoint. Use the REST Endpoint URL and User ID you got in the previous steps ([step 3](/integrations/cognigy-ai#step-3-create-a-cognigyai-rest-endpoint) and [step 5](/integrations/cognigy-ai#step-5-find-your-cognigyai-user-id)) to compose the request body: @@ -126,7 +135,7 @@ Use the REST Endpoint URL and User ID you got in the previous steps ([step 3](/i } ``` -The request is considered successful if `cognigy-connector` is returned in the list of configured components and the request status code is `200`. +The request is considered successful if the component's name (in this case: `cognigy-connector`) is returned in the list of configured components. ```json { @@ -140,7 +149,7 @@ Cognigy.AI is now installed and configured. ## Step 6 (option 2): Install and configure Cognigy.AI to your Airy instance via the Control Center UI -On the [Airy Control Center UI](/ui/control-center/introduction), navigate to the [Catalog](/ui/control-center/catalog) and select Cognigy.AI. Click on the `Install` button. +On the [Airy Control Center UI](/ui/control-center/introduction), navigate to the [Catalog](/ui/control-center/catalog) and select `Cognigy.AI`. Click on the `Install` button. Once the installation is completed, navigate to the [Control Center's Connectors page](/ui/control-center/connectors) and select Cognigy.AI: this will open the connector's configuration page. @@ -152,8 +161,7 @@ Cognigy.AI is now installed and configured. ## Step 7: Cognigy.AI's connection with Airy To test the connection, write a message to one of your channels: Airy Core will -forward it to your Cognigy.AI installation, which will respond according to the Cognigy.AI Flow -using the Airy Core API. +forward it to your Cognigy.AI installation, which will respond to the Airy Core API according to its conversation [Flow](/integrations/cognigy-ai#step-2-create-a-cognigyai-flow) . The screenshot below was taken on a [Airy Live Chat Plugin](/sources/chatplugin/overview) channel from an Airy instance connected to Cognigy.AI. It shows an example where a message sent to Airy Core is automatically responded to according to a [Cognigy.AI Flow](/integrations/cognigy-ai#step-2-create-a-cognigyai-flow) where the Live Agent responds "Hi from Cognigy! 👋" to a contact's first message. diff --git a/docs/docs/integrations/ibm-watson-assistant.md b/docs/docs/integrations/ibm-watson-assistant.md new file mode 100644 index 0000000000..b4d1a28f6b --- /dev/null +++ b/docs/docs/integrations/ibm-watson-assistant.md @@ -0,0 +1,117 @@ +--- +title: IBM Watson Assistant +sidebar_label: IBM Watson Assistant +--- + +import useBaseUrl from '@docusaurus/useBaseUrl'; +import TLDR from "@site/src/components/TLDR"; +import SuccessBox from "@site/src/components/SuccessBox"; + + + +The IBM Watson™ Assistant service combines machine learning, natural language understanding, and an integrated dialog editor to create conversation flows between your apps and your users. + +- From the [IBM Watson Assistant documentation](https://cloud.ibm.com/apidocs/assistant/assistant-v2#introduction) + + + +Integrating [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) with your Airy Core instance enables you to leverage its conversational AI capabilities on all your instance's [channels](getting-started/glossary.md#channel). + +When [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) is integrated with an Airy Core instance, Airy Core will forward the messages to the [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) installation, which will respond to the Airy Core API according to its conversation flow. + +:::tip What you will learn + +- Finding your credentials on your IBM Cloud dashboard +- How to connect your IBM Watson Assistant to Airy Core + +::: + +:::note Prerequisites + +- A running Airy Core installation (refer to the [Get + Started section](getting-started/installation/introduction.md)) +- An [IBM Cloud](https://www.ibm.com/cloud) account with a running [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) product + +::: + +## Step 1: Find your credentials on your IBM Cloud dashbaord + +Once that you have an [IBM Cloud](https://www.ibm.com/cloud) account with a running [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) (see prerequisites), you need to find your assistant's credentials. Connecting the [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) to Airy Core requires 3 configuration values: your IBM Watson Assistant instance's `URL`, `apiKey` and `Assistant ID`. + +- Find your [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) instance's `URL` and `apiKey` on the IBM Watson Assistant service page. To access this service page: select `ressource list` from your dashboard, select the `AI / Machine Learning` category, and then select your assistant. Note down these credentials. + +- Next, on your IBM Watson Assistant service page, click on the button `Launch Assistant`: this opens the assistant page. On your assistant page, click on the `settings` button on the left sidebar, at the bottom. This opens the settings page: note the `Assistant ID`. + + + +Congratulations! You are now ready to connect IBM Watson Assistant to your Airy Core instance 🎉 + + +
+ +import InstallationOptions from './installation-options.mdx' + + + +## Step 2 (option 1): Installation and configuration via API request + +First, you need to install the component on your instance: send an API request to the [Components Install](/api/endpoints/components#install) endpoint to install the [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) on your Airy instance. + +The request body should be: + +```json +{ + "name": "ibm-watson-assistant-connector" +} +``` + +Once the installation is successful (indicated by a 201 response status code), you can configure the component using the [Components Update](/api/endpoints/components#update) endpoint. + +Use the `URL`, `apiKey`, and `Assistant ID` you noted in the previous step to compose the request body: + +```json +{ + "components": [ + { + "name": "ibm-watson-assistant-connector", + "enabled": true, + "data": { + "ibmWatsonAssistantURL": "yourURL", + "ibmWatsonAssistantApiKey": "yourApiKey", + "ibmWatsonAssistantAssistantId": "yourAssistantId" + } + } + ] +} +``` + +The request is considered successful if the component's name (in this case:`ibm-watson-assistant-connector`) is returned in the response. + +```json +{ + "components": { + "ibm-watson-assistant-connector": true + } +} +``` + +The [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) is now installed and configured on your Airy Core instance. + +## Step 2 (option 2): Installation and configuration via the Airy Control Center UI + +On the [Airy Control Center UI](/ui/control-center/introduction), navigate to the [Catalog](/ui/control-center/catalog) and select `IBM Watson Assistant`. Click on the `Install` button. + +Once the installation is completed, navigate to the [Control Center's Connectors page](/ui/control-center/connectors) and select `IBM Watson Assistant`: this will open the connector's configuration page. + +Paste the `URL`, `apiKey`, and `Assistant ID` you noted in the previous step in the respective fields and save this configuration. + +The [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) is now installed and configured on your Airy Core instance. + +## Step 3: IBM Watson Assistant's connection with Airy + +To test the connection, write a message to one of your channels: Airy Core will +forward it to your [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) installation, which will respond to the Airy Core API according to its conversation flow. + +The screenshot below displays an [Airy Live Chat Plugin](/sources/chatplugin/overview) from an Airy instance connected to the [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant). It shows an example where a message sent to Airy Core is responded to by an [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) installation. In this specific installation, the assistant was programmed to respond "Hello from IBM Watson Assistant!" to a contact's message. + +
Airy connection with IBM Watson Assistant
diff --git a/docs/docs/integrations/installation-options.mdx b/docs/docs/integrations/installation-options.mdx new file mode 100644 index 0000000000..b1830ac382 --- /dev/null +++ b/docs/docs/integrations/installation-options.mdx @@ -0,0 +1,9 @@ +Connecting this [component](/concepts/architecture#components) to your Airy Core instance +can be done in 2 ways: + +- through API request (using API platforms such as [Postman](https://www.postman.com/)) +- or through the [Airy Control Center UI](/ui/control-center/introduction) + +We cover both options in this section: keep reading for connection via API request, +scroll down to the next section for connecting it via the +[Airy Control Center UI](/ui/control-center/introduction). diff --git a/docs/sidebars.js b/docs/sidebars.js index f4b60fc4d7..f6699094cb 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -104,6 +104,7 @@ module.exports = { '🛠️ Integrations': [ { 'Conversational AI /NLP': [ + 'integrations/ibm-watson-assistant', 'integrations/cognigy-ai', 'integrations/rasa-assistant', 'integrations/rasa-suggested-replies', diff --git a/docs/static/img/integrations/ibmWatsonAssistant/messagingExample.png b/docs/static/img/integrations/ibmWatsonAssistant/messagingExample.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a4ae36b4d960315f20716b0d646ed1b71ba062 GIT binary patch literal 70955 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 Gko-T@*z9Nk literal 0 HcmV?d00001 From 05f3ecbe1e2b180747a192c4b1c9d04de30bacfc Mon Sep 17 00:00:00 2001 From: Ljupco Vangelski Date: Mon, 7 Nov 2022 12:03:20 +0100 Subject: [PATCH 12/28] Revert "[#3878] Adding Loading indicators to control-center (#3906)" (#3916) This reverts commit 1b8984c07c2c13424d6770486cd8a51e14042d7e. --- bazel.tsconfig.json | 1 - frontend/control-center/BUILD | 2 - frontend/control-center/src/App.tsx | 24 +- .../src/components/ChannelAvatar/index.tsx | 4 - .../src/components/Sidebar/index.tsx | 4 +- .../Catalog/CatalogCard/index.module.scss | 13 +- .../src/pages/Catalog/CatalogCard/index.tsx | 235 +- .../Catalog/CatalogItemDetails/index.tsx | 83 +- .../FilterCatalogModal.module.scss | 1 - .../src/pages/Catalog/index.tsx | 141 +- .../Connectors/ChannelCard/index.module.scss | 2 +- .../Connectors/InfoCard/index.module.scss | 2 +- .../src/pages/Connectors/index.module.scss | 2 +- .../src/pages/Connectors/index.tsx | 38 +- .../control-center/src/pages/Status/index.tsx | 57 +- .../Webhooks/EmptyState/index.module.scss | 2 +- .../src/pages/Webhooks/EmptyState/index.tsx | 33 +- .../src/pages/Webhooks/index.tsx | 64 +- .../src/reducers/data/catalog/index.ts | 4 +- .../src/selectors/connectors.ts | 6 +- .../assets/images/icons/amazonLexV2Logo.svg | 1 - lib/typescript/components/BUILD | 2 - .../NotificationComponent/index.module.scss | 3 - .../components/loaders/AiryLoader/data.json | 3618 ----------------- .../loaders/AiryLoader/index.module.scss | 0 .../components/loaders/AiryLoader/index.tsx | 59 - .../loaders/InstallerLoader/index.module.scss | 20 - .../loaders/InstallerLoader/index.tsx | 63 - .../InstallerLoader/spinnerLoader.json | 1 - lib/typescript/components/loaders/index.ts | 2 - .../components/tooltip/index.module.scss | 1 - lib/typescript/components/tooltip/index.tsx | 35 +- lib/typescript/model/Components.ts | 3 +- lib/typescript/model/Connectors.ts | 9 +- lib/typescript/model/Source.ts | 1 - lib/typescript/translations/translations.ts | 19 - package.json | 2 - yarn.lock | 2056 +++++----- 38 files changed, 1250 insertions(+), 5363 deletions(-) delete mode 100644 lib/typescript/assets/images/icons/amazonLexV2Logo.svg delete mode 100644 lib/typescript/components/loaders/AiryLoader/data.json delete mode 100644 lib/typescript/components/loaders/AiryLoader/index.module.scss delete mode 100644 lib/typescript/components/loaders/AiryLoader/index.tsx delete mode 100644 lib/typescript/components/loaders/InstallerLoader/index.module.scss delete mode 100644 lib/typescript/components/loaders/InstallerLoader/index.tsx delete mode 100644 lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json diff --git a/bazel.tsconfig.json b/bazel.tsconfig.json index d335b62517..0836888a4c 100644 --- a/bazel.tsconfig.json +++ b/bazel.tsconfig.json @@ -16,7 +16,6 @@ "preserveConstEnums": true, "isolatedModules": false, "module": "commonjs", - "resolveJsonModule": true, "sourceMap": true, "jsx": "react", "paths": { diff --git a/frontend/control-center/BUILD b/frontend/control-center/BUILD index b191c90f77..0de7da3951 100644 --- a/frontend/control-center/BUILD +++ b/frontend/control-center/BUILD @@ -30,8 +30,6 @@ ts_web_library( "@npm//@types/lodash-es", "@npm//@types/dom-mediacapture-record", "@npm//lodash-es", - "@npm//react-lottie", - "@npm//@types/react-lottie", "@npm//react", "@npm//react-router-dom", "@npm//redux", diff --git a/frontend/control-center/src/App.tsx b/frontend/control-center/src/App.tsx index b13e6dcbb6..f17139b061 100644 --- a/frontend/control-center/src/App.tsx +++ b/frontend/control-center/src/App.tsx @@ -4,7 +4,7 @@ import TopBar from './components/TopBar'; import Sidebar from './components/Sidebar'; import styles from './App.module.scss'; import {getClientConfig} from './actions/config'; -import {Navigate, Route, Routes, useLocation} from 'react-router-dom'; +import {Navigate, Route, Routes} from 'react-router-dom'; import {INBOX_ROUTE, CATALOG_ROUTE, CONNECTORS_ROUTE, ROOT_ROUTE, STATUS_ROUTE, WEBHOOKS_ROUTE} from './routes/routes'; import NotFound from './pages/NotFound'; import ConnectorsOutlet from './pages/Connectors/ConnectorsOutlet'; @@ -16,41 +16,21 @@ import Status from './pages/Status'; import Inbox from './pages/Inbox'; import ConnectorConfig from './pages/Connectors/ConnectorConfig'; import CatalogProductPage from './pages/Catalog/CatalogItemDetails'; -import {getConnectorsConfiguration, listChannels, listComponents} from './actions'; const mapDispatchToProps = { getClientConfig, - listChannels, - getConnectorsConfiguration, - listComponents, }; const connector = connect(null, mapDispatchToProps); const App = (props: ConnectedProps) => { - const location = useLocation(); - useEffect(() => { - props.getClientConfig().catch((error: Error) => { - console.error(error); - }); + props.getClientConfig(); if (localStorage.getItem('theme') === 'dark') { document.documentElement.setAttribute('data-theme', 'dark'); } }, []); - useEffect(() => { - props.listChannels().catch((error: Error) => { - console.error(error); - }); - props.getConnectorsConfiguration().catch((error: Error) => { - console.error(error); - }); - props.listComponents().catch((error: Error) => { - console.error(error); - }); - }, [location]); - return (
diff --git a/frontend/control-center/src/components/ChannelAvatar/index.tsx b/frontend/control-center/src/components/ChannelAvatar/index.tsx index 1e13ede728..9b6f39ca90 100644 --- a/frontend/control-center/src/components/ChannelAvatar/index.tsx +++ b/frontend/control-center/src/components/ChannelAvatar/index.tsx @@ -14,7 +14,6 @@ import {ReactComponent as CognigyAvatar} from 'assets/images/icons/cognigyLogo.s import {ReactComponent as RasaAvatar} from 'assets/images/icons/rasaLogo.svg'; import {ReactComponent as AmeliaAvatar} from 'assets/images/icons/ameliaLogo.svg'; import {ReactComponent as AmazonS3Avatar} from 'assets/images/icons/amazons3Logo.svg'; -import {ReactComponent as AmazonLexV2Avatar} from 'assets/images/icons/amazonLexV2Logo.svg'; import {ReactComponent as IbmWatsonAssistantAvatar} from 'assets/images/icons/ibmWatsonAssistantLogo.svg'; import {Channel, Source} from 'model'; @@ -80,9 +79,6 @@ export const getChannelAvatar = (source: string) => { case Source.amazons3: case 'Amazon S3': return ; - case Source.amazonLexV2: - case 'Amazon LEX V2': - return ; case Source.ibmWatsonAssistant: case 'IBM Watson Assistant': return ; diff --git a/frontend/control-center/src/components/Sidebar/index.tsx b/frontend/control-center/src/components/Sidebar/index.tsx index 32904d1eb5..c8949b400b 100644 --- a/frontend/control-center/src/components/Sidebar/index.tsx +++ b/frontend/control-center/src/components/Sidebar/index.tsx @@ -4,7 +4,7 @@ import {useMatch} from 'react-router'; import {connect, ConnectedProps} from 'react-redux'; import {StateModel} from '../../reducers'; import {useCurrentComponentForSource} from '../../selectors'; -import {InstallationStatus, Source} from 'model'; +import {Source} from 'model'; import {CATALOG_ROUTE, CONNECTORS_ROUTE, INBOX_ROUTE, STATUS_ROUTE, WEBHOOKS_ROUTE} from '../../routes/routes'; import {ReactComponent as ConnectorsIcon} from 'assets/images/icons/gitMerge.svg'; @@ -27,7 +27,7 @@ const Sidebar = (props: SideBarProps) => { const {version, components} = props; const componentInfo = useCurrentComponentForSource(Source.webhooks); - const webhooksEnabled = componentInfo.installationStatus === InstallationStatus.installed; + const webhooksEnabled = componentInfo.installed; const inboxEnabled = components[Source.frontendInbox]?.enabled || false; const showLine = inboxEnabled || webhooksEnabled; diff --git a/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss b/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss index 213a4e8110..16347deeb9 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss +++ b/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss @@ -5,6 +5,8 @@ .catalogCard { width: 340px; height: 248px; + margin-bottom: 28px; + margin-right: 36px; padding: 0px 12px 0px 20px; display: flex; flex-direction: column; @@ -14,9 +16,6 @@ outline: 2px solid transparent; @include font-s; transition: all 0.1s; - z-index: -1; - position: relative; - pointer-events: all; &:hover { outline: 2px solid var(--color-airy-blue); @@ -25,14 +24,6 @@ } } -.installerLoaderWrapper { - position: relative; - z-index: 1; - &:hover { - z-index: 2; - } -} - .cardLogoTitleContainer { display: flex; align-items: flex-start; diff --git a/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx b/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx index 682b1428f4..9ec1062f33 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx +++ b/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx @@ -1,11 +1,11 @@ -import React, {Dispatch, SetStateAction, useEffect, useRef, useState} from 'react'; +import React, {useRef, useState} from 'react'; import {useNavigate} from 'react-router-dom'; import {useTranslation} from 'react-i18next'; import {connect, ConnectedProps} from 'react-redux'; import {StateModel} from '../../../reducers'; import {installComponent} from '../../../actions/catalog'; -import {ComponentInfo, ConnectorPrice, InstallationStatus, NotificationModel} from 'model'; -import {Button, NotificationComponent, SettingsModal, Tooltip} from 'components'; +import {ComponentInfo, ConnectorPrice, NotificationModel} from 'model'; +import {Button, NotificationComponent, SettingsModal, SmartButton} from 'components'; import {getChannelAvatar} from '../../../components/ChannelAvatar'; import {getCatalogProductRouteForComponent, getConnectedRouteForComponent} from '../../../services'; import {DescriptionComponent, getDescriptionSourceName} from '../../../components/Description'; @@ -14,23 +14,13 @@ import styles from './index.module.scss'; import NotifyMeModal from '../NotifyMeModal'; import {CONNECTORS_ROUTE} from '../../../routes/routes'; import {getMergedConnectors} from '../../../selectors'; -import {InstallerLoader} from 'components/loaders/InstallerLoader'; - -export type ObservationInstallStatus = { - pending: boolean; - name: string; - retries: number; -}; type CatalogCardProps = { componentInfo: ComponentInfo; - setObserveInstallStatus: Dispatch>; - showConfigureModal: string; - blockInstalling: boolean; - installStatus: InstallationStatus; } & ConnectedProps; const mapStateToProps = (state: StateModel) => ({ + component: state.data.catalog, connectors: getMergedConnectors(state), }); @@ -43,21 +33,14 @@ const connector = connect(mapStateToProps, mapDispatchToProps); export const availabilityFormatted = (availability: string) => availability.split(','); const CatalogCard = (props: CatalogCardProps) => { - const { - connectors, - componentInfo, - installComponent, - setObserveInstallStatus, - showConfigureModal, - blockInstalling, - installStatus, - } = props; + const {component, connectors, componentInfo, installComponent} = props; const hasConnectedChannels = connectors[componentInfo?.name].connectedChannels > 0; const isConfigured = connectors[componentInfo?.name].isConfigured; const isChannel = connectors[componentInfo?.name].isChannel; - const [isPending, setIsPending] = useState(installStatus === InstallationStatus.pending); + const isInstalled = component[componentInfo?.name]?.installed; const [isModalVisible, setIsModalVisible] = useState(false); const [isNotifyMeModalVisible, setIsNotifyMeModalVisible] = useState(false); + const [isPending, setIsPending] = useState(false); const [notification, setNotification] = useState(null); const [notifyMeNotification, setNotifyMeNotification] = useState(null); const [forceClose, setForceClose] = useState(false); @@ -72,22 +55,17 @@ const CatalogCard = (props: CatalogCardProps) => { //Commented until backend is ready for this!!! // const notifiedEmail = t('infoNotifyMe') + ` ${notified}`; - useEffect(() => { - showConfigureModal === componentInfo?.name && (setIsModalVisible(true), setIsPending(false)); - if (connectors[componentInfo?.name].installationStatus !== InstallationStatus.pending) { - setIsPending(false); - } - }, [showConfigureModal, connectors[componentInfo?.name].installationStatus]); - const openInstallModal = () => { setIsPending(true); installComponent({name: componentInfo.name}) .then(() => { - setObserveInstallStatus({pending: true, name: componentInfo?.name, retries: 0}); + setNotification({show: true, successful: true, text: t('successfullyInstalled')}); + setIsModalVisible(true); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedInstall')}); - setObserveInstallStatus({pending: false, name: componentInfo?.name, retries: 0}); + }) + .finally(() => { setIsPending(false); }); }; @@ -139,7 +117,7 @@ const CatalogCard = (props: CatalogCardProps) => { ); } - if (connectors[componentInfo?.name].installationStatus === InstallationStatus.installed) { + if (isInstalled) { return ( - } - hoverElementWidth={400} - direction="right" - position="absolute" - top={84} - left={100} - tooltipContent={t('tooltipInstallingQueue')} - /> - ) : ( - - )} - + ); }; return ( <> -
- -
-
-
- {getChannelAvatar(componentInfo.displayName)} - -
-
-

{componentInfo.displayName}

-

- {' '} - {t('categories')}: {componentInfo.category}{' '} -

-
-
-
- {componentInfo.name && ( -

- -

- )} - -

- - {t('availableFor')}: -

-
-
- {componentInfo?.availableFor && - availabilityFormatted(componentInfo.availableFor).map((service: string) => ( - - ))} -
- {/* Commented until backend is ready for this!!! +
+
+
+ {getChannelAvatar(componentInfo.displayName)} + +
+
+

{componentInfo.displayName}

+

+ {' '} + {t('categories')}: {componentInfo.category}{' '} +

+
+
+ +
+ {componentInfo.name && ( +

+ +

+ )} + +

+ + {t('availableFor')}: +

+
+
+ {componentInfo?.availableFor && + availabilityFormatted(componentInfo.availableFor).map((service: string) => ( + + ))} +
+ {/* Commented until backend is ready for this!!! {componentInfo?.price === ConnectorPrice.requestAccess && (
{t('soon').toUpperCase()}
)} */} -
-
- - {isModalVisible && ( - } - wrapperClassName={styles.enableModalContainerWrapper} - containerClassName={styles.enableModalContainer} - title={`${componentInfo.displayName} ${t('installed')}`} - close={closeModal} - headerClassName={styles.headerModal} - > - - - )} - - {isNotifyMeModalVisible && ( - - )} -
- -
+
+
+ + {isModalVisible && ( + } + wrapperClassName={styles.enableModalContainerWrapper} + containerClassName={styles.enableModalContainer} + title={`${componentInfo.displayName} ${t('installed')}`} + close={closeModal} + headerClassName={styles.headerModal} + > + + + )} + {isNotifyMeModalVisible && ( + + )} + {notification?.show && ( { info={notification.info} /> )} - {notifyMeNotification?.show && ( ({ component: state.data.catalog, - connectors: getMergedConnectors(state), }); const mapDispatchToProps = { installComponent, uninstallComponent, - listComponents, }; const connector = connect(mapStateToProps, mapDispatchToProps); @@ -35,7 +32,7 @@ interface LocationState { } const CatalogItemDetails = (props: ConnectedProps) => { - const {component, connectors, installComponent, uninstallComponent, listComponents} = props; + const {component, installComponent, uninstallComponent} = props; const location = useLocation(); const locationState = location.state as LocationState; const {componentInfo} = locationState; @@ -43,69 +40,34 @@ const CatalogItemDetails = (props: ConnectedProps) => { const [isModalVisible, setIsModalVisible] = useState(false); const [isNotifyMeModalVisible, setIsNotifyMeModalVisible] = useState(false); const [modal, setModal] = useState(null); + const [isPending, setIsPending] = useState(false); const [notification, setNotification] = useState(null); const [notifyMeNotification, setNotifyMeNotification] = useState(null); - const [pendingNotification, setPendingNotification] = useState(null); const [forceClose, setForceClose] = useState(false); - const [installStarted, setInstallStarted] = useState(false); - const [blockInstalling, setBlockInstalling] = useState(false); const notified = localStorage.getItem(`notified.${componentInfo.source}`); const {t} = useTranslation(); const notifiedEmail = t('infoNotifyMe') + ` ${notified}`; const navigate = useNavigate(); const NEW_COMPONENT_INSTALL_ROUTE = getNewChannelRouteForComponent(componentInfo.source); - const isInstalled = component[componentInfo?.name]?.installationStatus === InstallationStatus.installed; + const isInstalled = component[componentInfo?.name]?.installed; const uninstallText = t('uninstall') + ` ${componentInfo.displayName}`; const installText = `${componentInfo.displayName} ` + t('installed'); - const [retries, setRetries] = useState(0); - - useEffect(() => { - Object.values(connectors).map(connector => { - if (connector?.installationStatus === InstallationStatus.pending) { - setBlockInstalling(true); - componentInfo?.price !== ConnectorPrice.requestAccess && - setPendingNotification({show: true, successful: false, text: t('tooltipInstallingQueue'), info: true}); - } - }); - }, []); - - useEffect(() => { - installStarted && recallComponentsList(retries); - if (connectors[componentInfo?.name]?.installationStatus === InstallationStatus.uninstalled && retries > 0) { - setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); - } - if (connectors[componentInfo?.name]?.installationStatus === InstallationStatus.installed && retries > 0) { - setModal({type: ModalType.install, title: installText}); - setIsModalVisible(true); - } - }, [connectors[componentInfo?.name]?.installationStatus, installStarted, retries, setRetries]); - - const recallComponentsList = (retries: number) => { - const maxRetries = 15; - setTimeout(() => { - retries++; - setRetries(retries); - if ( - retries === maxRetries || - (connectors[componentInfo?.name]?.installationStatus !== InstallationStatus.pending && retries > 1) - ) { - setInstallStarted(false); - setRetries(0); - } else { - listComponents(); - } - }, 5000); - }; const openModalInstall = () => { if (!isInstalled) { + setIsPending(true); installComponent({name: componentInfo.name}) .then(() => { - setInstallStarted(true); + setModal({type: ModalType.install, title: installText}); + setNotification({show: true, successful: true, text: t('successfullyInstalled')}); + setIsModalVisible(true); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedInstall')}); + }) + .finally(() => { + setIsPending(false); }); } else { setModal({type: ModalType.uninstall, title: uninstallText}); @@ -118,13 +80,17 @@ const CatalogItemDetails = (props: ConnectedProps) => { }; const confirmUninstall = () => { + setIsPending(true); setIsModalVisible(false); uninstallComponent({name: `${componentInfo.name}`}) .then(() => { - setInstallStarted(true); + setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedUninstall')}); + }) + .finally(() => { + setIsPending(false); }); }; @@ -197,9 +163,8 @@ const CatalogItemDetails = (props: ConnectedProps) => { } height={50} width={180} - disabled={blockInstalling} onClick={componentInfo?.price === ConnectorPrice.requestAccess ? handleNotifyMeClick : openModalInstall} - pending={connectors[componentInfo?.name]?.installationStatus === InstallationStatus.pending} + pending={isPending} styleVariant={ componentInfo?.price === ConnectorPrice.requestAccess ? notified @@ -321,18 +286,6 @@ const CatalogItemDetails = (props: ConnectedProps) => { info={notification.info} /> )} - {pendingNotification?.show && ( - - )} {notifyMeNotification?.show && ( { return { catalogList: Object.values(state.data.catalog), - connectors: getMergedConnectors(state), }; }; const mapDispatchToProps = { listComponents, + getConnectorsConfiguration, + listChannels, }; const connector = connect(mapStateToProps, mapDispatchToProps); const Catalog = (props: ConnectedProps) => { - const {catalogList, connectors, listComponents} = props; + const {catalogList, listComponents, getConnectorsConfiguration, listChannels} = props; const [orderedCatalogList, setOrderedCatalogList] = useState(catalogList); - const [observeInstallStatus, setObserveInstallStatus] = useState(null); - const [notification, setNotification] = useState(null); - const [showConfigureModal, setShowConfigureModal] = useState(''); - const [blockInstalling, setBlockInstalling] = useState(false); const {t} = useTranslation(); const catalogPageTitle = t('Catalog'); const [currentFilter, setCurrentFilter] = useState( @@ -42,48 +36,18 @@ const Catalog = (props: ConnectedProps) => { const sortByName = (a: ComponentInfo, b: ComponentInfo) => a?.displayName?.localeCompare(b?.displayName); useEffect(() => { + listChannels().catch((error: Error) => { + console.error(error); + }); + getConnectorsConfiguration().catch((error: Error) => { + console.error(error); + }); + listComponents().catch((error: Error) => { + console.error(error); + }); setPageTitle(catalogPageTitle); }, []); - useEffect(() => { - observeInstallStatus?.pending && recallComponentsList(observeInstallStatus?.retries); - - !observeInstallStatus && - Object.values(connectors).map(connector => { - connector.installationStatus === InstallationStatus.pending && - (setObserveInstallStatus({pending: true, name: connector.name, retries: 0}), - recallComponentsList(observeInstallStatus?.retries)); - }); - }, [observeInstallStatus, connectors[observeInstallStatus?.name]?.installationStatus]); - - const recallComponentsList = (retries: number) => { - connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.pending - ? setBlockInstalling(true) - : setBlockInstalling(false); - - if (connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.installed) { - setShowConfigureModal(observeInstallStatus?.name); - } - - if (connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.uninstalled) { - setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); - } - - const maxRetries = 15; - setTimeout(() => { - retries++; - setObserveInstallStatus({...observeInstallStatus, retries: retries}); - if ( - observeInstallStatus?.retries === maxRetries || - (connectors[observeInstallStatus?.name]?.installationStatus !== InstallationStatus.pending && retries > 1) - ) { - setObserveInstallStatus({...observeInstallStatus, pending: false}); - } else { - listComponents(); - } - }, 5000); - }; - useLayoutEffect(() => { if (query && currentFilter === FilterTypes.all) { const filteredCatalogByName = [...catalogList].filter((component: ComponentInfo) => @@ -92,19 +56,10 @@ const Catalog = (props: ConnectedProps) => { setOrderedCatalogList(filteredCatalogByName); } else { const sortedByInstalled = [...catalogList] - .filter( - (component: ComponentInfo) => - component.installationStatus === InstallationStatus.installed && - component.price !== ConnectorPrice.requestAccess - ) + .filter((component: ComponentInfo) => component.installed && component.price !== ConnectorPrice.requestAccess) .sort(sortByName); const sortedByUninstalled = [...catalogList] - .filter( - (component: ComponentInfo) => - (component.installationStatus === InstallationStatus.uninstalled || - component.installationStatus === InstallationStatus.pending) && - component.price !== ConnectorPrice.requestAccess - ) + .filter((component: ComponentInfo) => !component.installed && component.price !== ConnectorPrice.requestAccess) .sort(sortByName); const sortedByAccess = [...catalogList] .filter((component: ComponentInfo) => component.price === ConnectorPrice.requestAccess) @@ -146,53 +101,27 @@ const Catalog = (props: ConnectedProps) => { }, [catalogList, currentFilter, query]); return ( - <> -
-
-

{catalogPageTitle}

- {catalogList.length > 0 && ( - - )} -
- {catalogList.length > 0 ? ( -
- {orderedCatalogList && orderedCatalogList.length > 0 ? ( - orderedCatalogList.map((infoItem: ComponentInfo) => { - if (infoItem?.name && infoItem?.displayName) { - return ( - - ); - } - }) - ) : ( -
-

{t('nothingFound')}

- {t('noMatchingCatalogs')} -
- )} -
+
+
+

{catalogPageTitle}

+ +
+ +
+ {orderedCatalogList && orderedCatalogList.length > 0 ? ( + orderedCatalogList.map((infoItem: ComponentInfo) => { + if (infoItem?.name && infoItem?.displayName) { + return ; + } + }) ) : ( - +
+

{t('nothingFound')}

+ {t('noMatchingCatalogs')} +
)}
- {notification?.show && ( - - )} - +
); }; diff --git a/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss b/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss index bd01f34804..e5c69b73e4 100644 --- a/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss @@ -6,7 +6,7 @@ width: 260px; height: 100px; margin-bottom: 28px; - margin-right: 28px; + margin-right: 36px; display: flex; align-items: center; border: 1px solid var(--color-dark-elements-gray); diff --git a/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss b/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss index 950af2a3a3..08eb62d8d0 100644 --- a/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss @@ -6,7 +6,7 @@ width: 260px; height: 100px; margin-bottom: 28px; - margin-right: 28px; + margin-right: 36px; display: flex; flex-direction: column; align-items: flex-start; diff --git a/frontend/control-center/src/pages/Connectors/index.module.scss b/frontend/control-center/src/pages/Connectors/index.module.scss index ee69411f73..3cc830d2de 100644 --- a/frontend/control-center/src/pages/Connectors/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/index.module.scss @@ -8,7 +8,7 @@ padding: 32px; margin: 88px 1.5em 0 191px; height: calc(100vh - 88px); - overflow-y: hidden; + overflow-y: scroll; overflow-x: hidden; width: 100%; } diff --git a/frontend/control-center/src/pages/Connectors/index.tsx b/frontend/control-center/src/pages/Connectors/index.tsx index c90923d26b..62a1f3a7b8 100644 --- a/frontend/control-center/src/pages/Connectors/index.tsx +++ b/frontend/control-center/src/pages/Connectors/index.tsx @@ -1,15 +1,22 @@ import React, {useEffect} from 'react'; import {connect, ConnectedProps} from 'react-redux'; -import {Connector, InstallationStatus, Source} from 'model'; +import {Connector, Source} from 'model'; import InfoCard from './InfoCard'; import {StateModel} from '../../reducers'; +import {listChannels, listComponents, getConnectorsConfiguration} from '../../actions'; import {setPageTitle} from '../../services/pageTitle'; import {EmptyStateConnectors} from './EmptyStateConnectors'; import {ChannelCard} from './ChannelCard'; +import {SimpleLoader} from 'components'; import {getComponentStatus} from '../../services'; import styles from './index.module.scss'; import {getMergedConnectors} from '../../selectors'; -import {AiryLoader} from 'components/loaders/AiryLoader'; + +const mapDispatchToProps = { + listChannels, + getConnectorsConfiguration, + listComponents, +}; const mapStateToProps = (state: StateModel) => { return { @@ -17,15 +24,12 @@ const mapStateToProps = (state: StateModel) => { }; }; -const connector = connect(mapStateToProps, null); +const connector = connect(mapStateToProps, mapDispatchToProps); const Connectors = (props: ConnectedProps) => { - const {connectors} = props; + const {connectors, listChannels, getConnectorsConfiguration, listComponents} = props; const installedConnectors = Object.values(connectors).filter( - (connector: Connector) => - connector.installationStatus === InstallationStatus.installed && - connector.source !== Source.webhooks && - connector.price + (connector: Connector) => connector.isInstalled && connector.source !== Source.webhooks && connector.price ); const hasAvailableConnectors = Object.values(connectors).filter((connector: Connector) => connector.source !== Source.webhooks && connector.price) @@ -36,6 +40,15 @@ const Connectors = (props: ConnectedProps) => { const sortByName = (a: Connector, b: Connector) => a?.displayName?.localeCompare(b?.displayName); useEffect(() => { + listChannels().catch((error: Error) => { + console.error(error); + }); + getConnectorsConfiguration().catch((error: Error) => { + console.error(error); + }); + listComponents().catch((error: Error) => { + console.error(error); + }); setPageTitle(pageTitle); }, []); @@ -44,12 +57,11 @@ const Connectors = (props: ConnectedProps) => {

Connectors

+ {!hasAvailableConnectors && }
- {!hasAvailableConnectors ? ( - - ) : !hasInstalledComponents ? ( + {!hasInstalledComponents ? ( ) : ( <> @@ -61,7 +73,7 @@ const Connectors = (props: ConnectedProps) => { componentInfo={connector} componentStatus={getComponentStatus( connector.isHealthy, - connector.installationStatus === InstallationStatus.installed, + connector.isInstalled, connector.isConfigured, connector.isEnabled )} @@ -76,7 +88,7 @@ const Connectors = (props: ConnectedProps) => { componentInfo={connector} componentStatus={getComponentStatus( connector.isHealthy, - connector.installationStatus === InstallationStatus.installed, + connector.isInstalled, connector.isConfigured, connector.isEnabled )} diff --git a/frontend/control-center/src/pages/Status/index.tsx b/frontend/control-center/src/pages/Status/index.tsx index 0f67580c5e..6da03d4216 100644 --- a/frontend/control-center/src/pages/Status/index.tsx +++ b/frontend/control-center/src/pages/Status/index.tsx @@ -7,7 +7,6 @@ import {ReactComponent as RefreshIcon} from 'assets/images/icons/refreshIcon.svg import {setPageTitle} from '../../services/pageTitle'; import {useTranslation} from 'react-i18next'; import styles from './index.module.scss'; -import {AiryLoader} from 'components/loaders/AiryLoader'; const mapDispatchToProps = { getClientConfig, @@ -72,37 +71,33 @@ const Status = (props: ConnectedProps) => { {lastRefresh}
- {Object.entries(catalog).length > 0 ? ( - <> -
-

{t('componentName')}

-

{t('healthStatus')}

-

{t('enabled')}

- -
-
- {components.map((component, index) => { - const catalogItem = catalog[component[0]]; - return ( - - ); - })} +
+

{t('componentName')}

+

{t('healthStatus')}

+ +

{t('enabled')}

+ +
+
+ {Object.entries(catalog).length > 0 && + components.map((component, index) => { + const catalogItem = catalog[component[0]]; + return ( + + ); + })} +
); }; diff --git a/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss b/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss index 39684b4f2b..4842abd201 100644 --- a/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss +++ b/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss @@ -6,7 +6,7 @@ justify-content: center; align-items: center; width: 100%; - height: calc(100% - 88px); + height: 100%; } .contentContainer { diff --git a/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx b/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx index f9bebebdb8..41d6bb83af 100644 --- a/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx +++ b/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx @@ -1,3 +1,4 @@ +import {ContentWrapper} from 'components/wrapper/ContentWrapper'; import React, {Dispatch, SetStateAction} from 'react'; import styles from './index.module.scss'; import {ReactComponent as SearchIcon} from 'assets/images/icons/search.svg'; @@ -12,19 +13,25 @@ export const EmptyState = (props: EmptyStateProps) => { const {t} = useTranslation(); return ( -
-
-
- + +
+
+ +
+

{t('noWebhooks')}

+ + {t('noWebhooksText')} + setNewWebhook(true)} className={styles.subscribeButton}> + {t('subscribe')} + + +
-

{t('noWebhooks')}

- - {t('noWebhooksText')} - setNewWebhook(true)} className={styles.subscribeButton}> - {t('subscribe')} - - -
-
+ } + /> ); }; diff --git a/frontend/control-center/src/pages/Webhooks/index.tsx b/frontend/control-center/src/pages/Webhooks/index.tsx index b1cd22b846..fbda3cee18 100644 --- a/frontend/control-center/src/pages/Webhooks/index.tsx +++ b/frontend/control-center/src/pages/Webhooks/index.tsx @@ -13,7 +13,6 @@ import styles from './index.module.scss'; import SubscriptionModal from './SubscriptionModal'; import WebhooksListItem from './WebhooksListItem'; import {NotificationModel} from 'model'; -import {AiryLoader} from 'components/loaders/AiryLoader'; type WebhooksProps = {} & ConnectedProps; @@ -35,7 +34,6 @@ const Webhooks = (props: WebhooksProps) => { const [isLoading, setIsLoading] = useState(false); const [errorOccurred, setErrorOccurred] = useState(false); const [notification, setNotification] = useState(null); - const [dataFetched, setDataFetched] = useState(false); const {t} = useTranslation(); useEffect(() => { @@ -44,13 +42,9 @@ const Webhooks = (props: WebhooksProps) => { useEffect(() => { webhooks.length === 0 && - listWebhooks() - .then(() => { - setDataFetched(true); - }) - .catch((error: Error) => { - console.error(error); - }); + listWebhooks().catch((error: Error) => { + console.error(error); + }); }, [webhooks]); const handleNotification = (show: boolean, error: boolean) => { @@ -121,23 +115,27 @@ const Webhooks = (props: WebhooksProps) => { /> )} -
-
-
-

Webhooks

- {webhooks.length > 0 && ( - - )} -
-
- {webhooks.length === 0 && !dataFetched ? ( - - ) : webhooks.length === 0 ? ( - - ) : ( - <> + {webhooks.length === 0 ? ( + + ) : ( + <> + {notification?.show && ( + + )} +
+
+
+

Webhooks

+ +
+

URL

Name

@@ -156,17 +154,9 @@ const Webhooks = (props: WebhooksProps) => { /> ))}
- {notification?.show && ( - - )} - - )} -
+
+ + )} ); }; diff --git a/frontend/control-center/src/reducers/data/catalog/index.ts b/frontend/control-center/src/reducers/data/catalog/index.ts index 65d0cd712c..e6ded10580 100644 --- a/frontend/control-center/src/reducers/data/catalog/index.ts +++ b/frontend/control-center/src/reducers/data/catalog/index.ts @@ -22,7 +22,7 @@ export default function connectorsReducer(state = defaultState, action: Action): ...state, [action.payload.name]: { ...state[action.payload.name], - installationStatus: 'pending', + installed: true, }, }; } @@ -31,7 +31,7 @@ export default function connectorsReducer(state = defaultState, action: Action): ...state, [action.payload.name]: { ...state[action.payload.name], - installationStatus: 'pending', + installed: false, }, }; } diff --git a/frontend/control-center/src/selectors/connectors.ts b/frontend/control-center/src/selectors/connectors.ts index a3acb0884b..8e78f7b3c7 100644 --- a/frontend/control-center/src/selectors/connectors.ts +++ b/frontend/control-center/src/selectors/connectors.ts @@ -1,6 +1,6 @@ import {StateModel} from '../reducers'; import {useSelector} from 'react-redux'; -import {Channel, Connector, ConnectorName, ConnectorsModel, InstallationStatus, Source} from 'model'; +import {Channel, Connector, ConnectorName, ConnectorsModel, Source} from 'model'; import {createSelector} from 'reselect'; import {merge} from 'lodash-es'; import {allChannelsConnected} from './channels'; @@ -31,7 +31,7 @@ export const getMergedConnectors = createSelector( const channelsBySource = (Source: Source) => channels.filter((channel: Channel) => channel.source === Source); const connectedChannels = channelsBySource(catalog[1].source).length; const isChannel = catalog[1].isChannel?.includes('true') ?? false; - const isInstalled = catalog[1].installationStatus === InstallationStatus.installed; + const isInstalled = catalog[1].installed; const price = catalog[1].price; const source = catalog[1].source; const name = catalog[0]; @@ -40,7 +40,7 @@ export const getMergedConnectors = createSelector( structuredCatalog = { name: name, displayName: displayName, - installationStatus: catalog[1].installationStatus, + isInstalled: isInstalled, isConfigured: !isInstalled && false, isHealthy: !isInstalled && false, isEnabled: !isInstalled && false, diff --git a/lib/typescript/assets/images/icons/amazonLexV2Logo.svg b/lib/typescript/assets/images/icons/amazonLexV2Logo.svg deleted file mode 100644 index abfdf8462b..0000000000 --- a/lib/typescript/assets/images/icons/amazonLexV2Logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/lib/typescript/components/BUILD b/lib/typescript/components/BUILD index 78cf999e51..1a2284eeed 100644 --- a/lib/typescript/components/BUILD +++ b/lib/typescript/components/BUILD @@ -11,13 +11,11 @@ ts_web_library( "//lib/typescript/types", "@npm//@types/node", "@npm//@types/react", - "@npm//@types/react-lottie", "@npm//i18next", "@npm//lodash-es", "@npm//react", "@npm//react-autosize-textarea", "@npm//react-i18next", - "@npm//react-lottie", "@npm//react-modal", "@npm//react-router-dom", ], diff --git a/lib/typescript/components/alerts/NotificationComponent/index.module.scss b/lib/typescript/components/alerts/NotificationComponent/index.module.scss index 3ca058d584..935a41cc36 100644 --- a/lib/typescript/components/alerts/NotificationComponent/index.module.scss +++ b/lib/typescript/components/alerts/NotificationComponent/index.module.scss @@ -80,17 +80,14 @@ .translateYAnimFade { animation-name: translateYFade; animation-timing-function: ease-in-out; - animation-fill-mode: forwards; } .translateYAnimSticky { animation-name: translateYSticky; animation-timing-function: ease-in-out; - animation-fill-mode: forwards; } .translateYAnimStickyClose { animation-name: translateYStickyClose; animation-timing-function: ease-in-out; - animation-fill-mode: forwards; } diff --git a/lib/typescript/components/loaders/AiryLoader/data.json b/lib/typescript/components/loaders/AiryLoader/data.json deleted file mode 100644 index cdaa3eb74f..0000000000 --- a/lib/typescript/components/loaders/AiryLoader/data.json +++ /dev/null @@ -1,3618 +0,0 @@ - { - "v": "5.5.2", - "fr": 25, - "ip": 0, - "op": 150, - "w": 800, - "h": 600, - "nm": "main", - "ddd": 0, - "assets": [ - { - "id": "comp_0", - "layers": [ - { - "ddd": 0, - "ind": 2, - "ty": 0, - "nm": "A", - "refId": "comp_1", - "sr": 1, - "ks": { - "o": { - "a": 0, - "k": 100, - "ix": 11 - }, - "r": { - "a": 0, - "k": 0, - "ix": 10 - }, - "p": { - "a": 0, - "k": [ - 400, - 300, - 0 - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 400, - 300, - 0 - ], - "ix": 1 - }, - "s": { - "a": 0, - "k": [ - 100, - 100, - 100 - ], - "ix": 6 - } - }, - "ao": 0, - "w": 800, - "h": 600, - "ip": 0, - "op": 153, - "st": 0, - "bm": 0 - }, - { - "ddd": 0, - "ind": 3, - "ty": 4, - "nm": "Background – logo 4", - "sr": 1, - "ks": { - "o": { - "a": 0, - "k": 100, - "ix": 11 - }, - "r": { - "a": 0, - "k": 0, - "ix": 10 - }, - "p": { - "a": 0, - "k": [ - 400.048, - 297.666, - 0 - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 156.707, - 157.891, - 0 - ], - "ix": 1 - }, - "s": { - "a": 0, - "k": [ - 100, - 100, - 100 - ], - "ix": 6 - } - }, - "ao": 0, - "shapes": [ - { - "ty": "gr", - "it": [ - { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ - [ - 89.013, - -5.356 - ], - [ - 6.654, - -75.723 - ], - [ - -9.549, - -22.526 - ], - [ - 0.638, - -2.729 - ], - [ - 0, - 0 - ], - [ - -0.32, - 0.014 - ], - [ - 0, - 0 - ], - [ - -2.067, - -1.479 - ], - [ - -34.314, - 0.411 - ], - [ - 1.404, - 85.166 - ] - ], - "o": [ - [ - -75.877, - 4.565 - ], - [ - -2.328, - 26.501 - ], - [ - 1.094, - 2.58 - ], - [ - 0, - 0 - ], - [ - -0.073, - 0.311 - ], - [ - 0, - 0 - ], - [ - 2.538, - -0.114 - ], - [ - 25.853, - 18.504 - ], - [ - 85.17, - -1.02 - ], - [ - -1.444, - -87.511 - ] - ], - "v": [ - [ - -9.365, - -154.619 - ], - [ - -154.081, - -13.896 - ], - [ - -142.446, - 60.358 - ], - [ - -141.689, - 68.508 - ], - [ - -155.108, - 128.497 - ], - [ - -154.616, - 129.089 - ], - [ - -96.912, - 123.898 - ], - [ - -89.829, - 126.045 - ], - [ - 2.113, - 154.895 - ], - [ - 155.101, - -2.606 - ] - ], - "c": true - }, - "ix": 2 - }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false - }, - { - "ty": "mm", - "mm": 4, - "nm": "Merge Paths 1", - "mn": "ADBE Vector Filter - Merge", - "hd": false - }, - { - "ty": "fl", - "c": { - "a": 0, - "k": [ - 0.294000004787, - 0.702000038297, - 0.991999966491, - 1 - ], - "ix": 4 - }, - "o": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 72, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 79, - "s": [ - 100 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 94, - "s": [ - 100 - ] - }, - { - "t": 101, - "s": [ - 0 - ] - } - ], - "ix": 5 - }, - "r": 1, - "bm": 0, - "nm": "Fill 1", - "mn": "ADBE Vector Graphic - Fill", - "hd": false - }, - { - "ty": "tr", - "p": { - "a": 0, - "k": [ - 156.659, - 160.225 - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 0, - 0 - ], - "ix": 1 - }, - "s": { - "a": 0, - "k": [ - 100, - 100 - ], - "ix": 3 - }, - "r": { - "a": 0, - "k": 0, - "ix": 6 - }, - "o": { - "a": 0, - "k": 100, - "ix": 7 - }, - "sk": { - "a": 0, - "k": 0, - "ix": 4 - }, - "sa": { - "a": 0, - "k": 0, - "ix": 5 - }, - "nm": "Transform" - } - ], - "nm": "Group 1", - "np": 3, - "cix": 2, - "bm": 0, - "ix": 1, - "mn": "ADBE Vector Group", - "hd": false - }, - { - "ty": "tm", - "s": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 54, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0 - ] - }, - "t": 74, - "s": [ - 100 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 109, - "s": [ - 100 - ] - }, - { - "t": 121, - "s": [ - 0 - ] - } - ], - "ix": 1 - }, - "e": { - "a": 0, - "k": 0, - "ix": 2 - }, - "o": { - "a": 0, - "k": 0, - "ix": 3 - }, - "m": 1, - "ix": 2, - "nm": "Trim Paths 1", - "mn": "ADBE Vector Filter - Trim", - "hd": false - }, - { - "ty": "st", - "c": { - "a": 0, - "k": [ - 0.29411765933, - 0.701960802078, - 0.992156922817, - 1 - ], - "ix": 3 - }, - "o": { - "a": 0, - "k": 100, - "ix": 4 - }, - "w": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 49, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 66, - "s": [ - 2 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 76, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 94, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 104, - "s": [ - 2 - ] - }, - { - "t": 121, - "s": [ - 0 - ] - } - ], - "ix": 5 - }, - "lc": 1, - "lj": 1, - "ml": 4, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false - } - ], - "ip": 44, - "op": 809, - "st": 44, - "bm": 0 - } - ] - }, - { - "id": "comp_1", - "layers": [ - { - "ddd": 0, - "ind": 1, - "ty": 4, - "nm": "part 3", - "sr": 1, - "ks": { - "o": { - "a": 0, - "k": 100, - "ix": 11 - }, - "r": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 0, - "s": [ - -33 - ] - }, - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 13, - "s": [ - 15 - ] - }, - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0 - ] - }, - "t": 31, - "s": [ - 25 - ] - }, - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 39, - "s": [ - 25 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 49, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0 - ] - }, - "t": 110, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 114.833, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 123.167, - "s": [ - 25 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 129.833, - "s": [ - 25 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 140.667, - "s": [ - 15 - ] - }, - { - "t": 151.5, - "s": [ - -33 - ] - } - ], - "ix": 10 - }, - "p": { - "a": 1, - "k": [ - { - "i": { - "x": 0, - "y": 1 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 37, - "s": [ - 400, - 300, - 0 - ], - "to": [ - -6.271, - -5, - 0 - ], - "ti": [ - 6.271, - 5, - 0 - ] - }, - { - "i": { - "x": 0.833, - "y": 0.833 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 49, - "s": [ - 362.375, - 270, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0, - "y": 0 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 110, - "s": [ - 362.375, - 270, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.833, - "y": 0.833 - }, - "o": { - "x": 1, - "y": 0 - }, - "t": 114, - "s": [ - 362.375, - 270, - 0 - ], - "to": [ - 6.271, - 5, - 0 - ], - "ti": [ - -6.271, - -5, - 0 - ] - }, - { - "t": 124, - "s": [ - 400, - 300, - 0 - ] - } - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 31.146, - 43.689, - 0 - ], - "ix": 1 - }, - "s": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0, - 0, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 0.333, - 0.333, - 0.333 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 0, - "s": [ - 0, - 0, - 100 - ] - }, - { - "i": { - "x": [ - 0.833, - 0.833, - 0.833 - ], - "y": [ - 0.833, - 0.833, - 0.833 - ] - }, - "o": { - "x": [ - 0.167, - 0.167, - 0.167 - ], - "y": [ - 0.167, - 0.167, - 0.167 - ] - }, - "t": 16, - "s": [ - 100, - 100, - 100 - ] - }, - { - "i": { - "x": [ - 0, - 0, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 0.167, - 0.167, - 0.167 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 110, - "s": [ - 100, - 100, - 100 - ] - }, - { - "i": { - "x": [ - 0.667, - 0.667, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 1, - 1, - 0.333 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 137.333, - "s": [ - 100, - 100, - 100 - ] - }, - { - "t": 150.6669921875, - "s": [ - 0, - 0, - 100 - ] - } - ], - "ix": 6 - } - }, - "ao": 0, - "shapes": [ - { - "ty": "gr", - "it": [ - { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ], - "o": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ], - "v": [ - [ - 30.896, - 18.648 - ], - [ - -30.896, - 43.439 - ], - [ - 5.988, - -43.439 - ] - ], - "c": true - }, - "ix": 2 - }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false - }, - { - "ty": "fl", - "c": { - "a": 0, - "k": [ - 1, - 1, - 1, - 1 - ], - "ix": 4 - }, - "o": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 8, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 16, - "s": [ - 100 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 110, - "s": [ - 100 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 144, - "s": [ - 100 - ] - }, - { - "t": 150.6669921875, - "s": [ - 0 - ] - } - ], - "ix": 5 - }, - "r": 1, - "bm": 0, - "nm": "Fill 1", - "mn": "ADBE Vector Graphic - Fill", - "hd": false - }, - { - "ty": "tr", - "p": { - "a": 0, - "k": [ - 31.146, - 43.689 - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 0, - 0 - ], - "ix": 1 - }, - "s": { - "a": 0, - "k": [ - 100, - 100 - ], - "ix": 3 - }, - "r": { - "a": 0, - "k": 0, - "ix": 6 - }, - "o": { - "a": 0, - "k": 100, - "ix": 7 - }, - "sk": { - "a": 0, - "k": 0, - "ix": 4 - }, - "sa": { - "a": 0, - "k": 0, - "ix": 5 - }, - "nm": "Transform" - } - ], - "nm": "Group 1", - "np": 2, - "cix": 2, - "bm": 0, - "ix": 1, - "mn": "ADBE Vector Group", - "hd": false - }, - { - "ty": "tm", - "s": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 0, - "s": [ - 100 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 20, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0 - ] - }, - "t": 110, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 1 - ], - "y": [ - 0 - ] - }, - "t": 137.333, - "s": [ - 0 - ] - }, - { - "t": 154, - "s": [ - 100 - ] - } - ], - "ix": 1 - }, - "e": { - "a": 0, - "k": 100, - "ix": 2 - }, - "o": { - "a": 0, - "k": 0, - "ix": 3 - }, - "m": 1, - "ix": 2, - "nm": "Trim Paths 1", - "mn": "ADBE Vector Filter - Trim", - "hd": false - }, - { - "ty": "st", - "c": { - "a": 0, - "k": [ - 0.258823543787, - 0.666666686535, - 0.992156863213, - 1 - ], - "ix": 3 - }, - "o": { - "a": 0, - "k": 100, - "ix": 4 - }, - "w": { - "a": 0, - "k": 4, - "ix": 5 - }, - "lc": 1, - "lj": 1, - "ml": 4, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false - } - ], - "ip": 0, - "op": 765, - "st": 0, - "bm": 0 - }, - { - "ddd": 0, - "ind": 2, - "ty": 4, - "nm": "part 4", - "sr": 1, - "ks": { - "o": { - "a": 0, - "k": 100, - "ix": 11 - }, - "r": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 23, - "s": [ - -40 - ] - }, - { - "i": { - "x": [ - 0.004 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 39, - "s": [ - -13 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 53, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.004 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0 - ] - }, - "t": 110, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.996 - ], - "y": [ - 0 - ] - }, - "t": 117.333, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 1 - ], - "y": [ - 0 - ] - }, - "t": 129, - "s": [ - -13 - ] - }, - { - "t": 142.3330078125, - "s": [ - -40 - ] - } - ], - "ix": 10 - }, - "p": { - "a": 1, - "k": [ - { - "i": { - "x": 0, - "y": 1 - }, - "o": { - "x": 0.296, - "y": 0 - }, - "t": 23, - "s": [ - 398.603, - 302.839, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0, - "y": 1 - }, - "o": { - "x": 0.428, - "y": 0.267 - }, - "t": 34, - "s": [ - 307.546, - 342.236, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.833, - "y": 0.833 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 53, - "s": [ - 435.046, - 291.736, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0, - "y": 0 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 110, - "s": [ - 435.046, - 291.736, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.572, - "y": 0.733 - }, - "o": { - "x": 1, - "y": 0 - }, - "t": 117.333, - "s": [ - 435.046, - 291.736, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.704, - "y": 1 - }, - "o": { - "x": 1, - "y": 0 - }, - "t": 133.167, - "s": [ - 307.546, - 342.236, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "t": 142.3330078125, - "s": [ - 398.603, - 302.839, - 0 - ] - } - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 61.591, - 98.404, - 0 - ], - "ix": 1 - }, - "s": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0, - 0, - 0.667 - ], - "y": [ - 1.063, - 1.063, - 1 - ] - }, - "o": { - "x": [ - 0.333, - 0.333, - 0.333 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 20, - "s": [ - 0, - 0, - 100 - ] - }, - { - "i": { - "x": [ - 0.833, - 0.833, - 0.833 - ], - "y": [ - 0.833, - 0.833, - 0.833 - ] - }, - "o": { - "x": [ - 0.167, - 0.167, - 0.167 - ], - "y": [ - 0.167, - 0.167, - 0.167 - ] - }, - "t": 39, - "s": [ - 100, - 100, - 100 - ] - }, - { - "i": { - "x": [ - 0, - 0, - 0.667 - ], - "y": [ - 3.067, - 3.067, - 1 - ] - }, - "o": { - "x": [ - 0.167, - 0.167, - 0.167 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 123, - "s": [ - 100, - 100, - 100 - ] - }, - { - "i": { - "x": [ - 0.667, - 0.667, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 1, - 1, - 0.333 - ], - "y": [ - -0.063, - -0.063, - 0 - ] - }, - "t": 128.167, - "s": [ - 100, - 100, - 100 - ] - }, - { - "t": 144, - "s": [ - 0, - 0, - 100 - ] - } - ], - "ix": 6 - } - }, - "ao": 0, - "shapes": [ - { - "ty": "gr", - "it": [ - { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ], - "o": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ], - "v": [ - [ - 61.342, - 76.983 - ], - [ - 8.924, - 98.153 - ], - [ - -61.342, - -76.985 - ], - [ - -8.925, - -98.153 - ] - ], - "c": true - }, - "ix": 2 - }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false - }, - { - "ty": "fl", - "c": { - "a": 0, - "k": [ - 1, - 1, - 1, - 1 - ], - "ix": 4 - }, - "o": { - "a": 0, - "k": 100, - "ix": 5 - }, - "r": 1, - "bm": 0, - "nm": "Fill 1", - "mn": "ADBE Vector Graphic - Fill", - "hd": false - }, - { - "ty": "tr", - "p": { - "a": 0, - "k": [ - 61.591, - 98.404 - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 0, - 0 - ], - "ix": 1 - }, - "s": { - "a": 0, - "k": [ - 100, - 100 - ], - "ix": 3 - }, - "r": { - "a": 0, - "k": 0, - "ix": 6 - }, - "o": { - "a": 0, - "k": 100, - "ix": 7 - }, - "sk": { - "a": 0, - "k": 0, - "ix": 4 - }, - "sa": { - "a": 0, - "k": 0, - "ix": 5 - }, - "nm": "Transform" - } - ], - "nm": "Group 1", - "np": 2, - "cix": 2, - "bm": 0, - "ix": 1, - "mn": "ADBE Vector Group", - "hd": false - }, - { - "ty": "st", - "c": { - "a": 0, - "k": [ - 0.258823529412, - 0.666666666667, - 0.992156922583, - 1 - ], - "ix": 3 - }, - "o": { - "a": 0, - "k": 100, - "ix": 4 - }, - "w": { - "a": 0, - "k": 4, - "ix": 5 - }, - "lc": 1, - "lj": 1, - "ml": 4, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false - } - ], - "ip": 20, - "op": 785, - "st": 20, - "bm": 0 - }, - { - "ddd": 0, - "ind": 3, - "ty": 4, - "nm": "Part 2", - "sr": 1, - "ks": { - "o": { - "a": 0, - "k": 100, - "ix": 11 - }, - "r": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 24, - "s": [ - -65 - ] - }, - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 39, - "s": [ - 35 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 50, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0 - ] - }, - "t": 110, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 1 - ], - "y": [ - 0 - ] - }, - "t": 119, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 1 - ], - "y": [ - 0 - ] - }, - "t": 128.167, - "s": [ - 35 - ] - }, - { - "t": 140.6669921875, - "s": [ - -65 - ] - } - ], - "ix": 10 - }, - "p": { - "a": 1, - "k": [ - { - "i": { - "x": 0, - "y": 1 - }, - "o": { - "x": 0.333, - "y": 0 - }, - "t": 24, - "s": [ - 399.08, - 301.932, - 0 - ], - "to": [ - -11.447, - -17.333, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0, - "y": 1 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 40, - "s": [ - 330.401, - 197.932, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.833, - "y": 0.833 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 50, - "s": [ - 383.984, - 345.641, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0, - "y": 0 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 110, - "s": [ - 383.984, - 345.641, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.833, - "y": 0.833 - }, - "o": { - "x": 1, - "y": 0 - }, - "t": 119, - "s": [ - 383.984, - 345.641, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.667, - "y": 1 - }, - "o": { - "x": 1, - "y": 0 - }, - "t": 127.333, - "s": [ - 330.401, - 197.932, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - -11.447, - -17.333, - 0 - ] - }, - { - "t": 140.6669921875, - "s": [ - 399.08, - 301.932, - 0 - ] - } - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 50.694, - 47.891, - 0 - ], - "ix": 1 - }, - "s": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0, - 0, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 0.333, - 0.333, - 0.333 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 19, - "s": [ - 0, - 0, - 100 - ] - }, - { - "i": { - "x": [ - 0.833, - 0.833, - 0.833 - ], - "y": [ - 0.833, - 0.833, - 0.833 - ] - }, - "o": { - "x": [ - 0.167, - 0.167, - 0.167 - ], - "y": [ - 0.167, - 0.167, - 0.167 - ] - }, - "t": 39, - "s": [ - 100, - 100, - 100 - ] - }, - { - "i": { - "x": [ - 0, - 0, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 0.167, - 0.167, - 0.167 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 110, - "s": [ - 100, - 100, - 100 - ] - }, - { - "i": { - "x": [ - 0.667, - 0.667, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 1, - 1, - 0.333 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 127.333, - "s": [ - 100, - 100, - 100 - ] - }, - { - "t": 144, - "s": [ - 0, - 0, - 100 - ] - } - ], - "ix": 6 - } - }, - "ao": 0, - "shapes": [ - { - "ty": "gr", - "it": [ - { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ], - "o": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ], - "v": [ - [ - 50.444, - 47.641 - ], - [ - -50.444, - -22.526 - ], - [ - 12.218, - -47.641 - ] - ], - "c": true - }, - "ix": 2 - }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false - }, - { - "ty": "fl", - "c": { - "a": 0, - "k": [ - 1, - 1, - 1, - 1 - ], - "ix": 4 - }, - "o": { - "a": 0, - "k": 100, - "ix": 5 - }, - "r": 1, - "bm": 0, - "nm": "Fill 1", - "mn": "ADBE Vector Graphic - Fill", - "hd": false - }, - { - "ty": "tr", - "p": { - "a": 0, - "k": [ - 50.694, - 47.891 - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 0, - 0 - ], - "ix": 1 - }, - "s": { - "a": 0, - "k": [ - 100, - 100 - ], - "ix": 3 - }, - "r": { - "a": 0, - "k": 0, - "ix": 6 - }, - "o": { - "a": 0, - "k": 100, - "ix": 7 - }, - "sk": { - "a": 0, - "k": 0, - "ix": 4 - }, - "sa": { - "a": 0, - "k": 0, - "ix": 5 - }, - "nm": "Transform" - } - ], - "nm": "Group 1", - "np": 2, - "cix": 2, - "bm": 0, - "ix": 1, - "mn": "ADBE Vector Group", - "hd": false - }, - { - "ty": "st", - "c": { - "a": 0, - "k": [ - 0.258823529412, - 0.666666666667, - 0.992156922583, - 1 - ], - "ix": 3 - }, - "o": { - "a": 0, - "k": 100, - "ix": 4 - }, - "w": { - "a": 0, - "k": 4, - "ix": 5 - }, - "lc": 1, - "lj": 1, - "ml": 4, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false - } - ], - "ip": 20, - "op": 785, - "st": 20, - "bm": 0 - }, - { - "ddd": 0, - "ind": 4, - "ty": 4, - "nm": "part 1", - "sr": 1, - "ks": { - "o": { - "a": 0, - "k": 100, - "ix": 11 - }, - "r": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.333 - ], - "y": [ - 0 - ] - }, - "t": 18, - "s": [ - -48 - ] - }, - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 39, - "s": [ - 26 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0.167 - ] - }, - "t": 53, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 0.167 - ], - "y": [ - 0 - ] - }, - "t": 110, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.833 - ], - "y": [ - 0.833 - ] - }, - "o": { - "x": [ - 1 - ], - "y": [ - 0 - ] - }, - "t": 114.833, - "s": [ - 0 - ] - }, - { - "i": { - "x": [ - 0.667 - ], - "y": [ - 1 - ] - }, - "o": { - "x": [ - 1 - ], - "y": [ - 0 - ] - }, - "t": 126.5, - "s": [ - 26 - ] - }, - { - "t": 144, - "s": [ - -48 - ] - } - ], - "ix": 10 - }, - "p": { - "a": 1, - "k": [ - { - "i": { - "x": 0, - "y": 1 - }, - "o": { - "x": 0.333, - "y": 0 - }, - "t": 20, - "s": [ - 398.596, - 301.788, - 0 - ], - "to": [ - 11.833, - -5.798, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0, - "y": 1 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 36, - "s": [ - 469.596, - 267, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.833, - "y": 0.833 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 53, - "s": [ - 334.221, - 354.625, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0, - "y": 0 - }, - "o": { - "x": 0.167, - "y": 0.167 - }, - "t": 110, - "s": [ - 334.221, - 354.625, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.833, - "y": 0.833 - }, - "o": { - "x": 1, - "y": 0 - }, - "t": 116.5, - "s": [ - 334.221, - 354.625, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 0, - 0, - 0 - ] - }, - { - "i": { - "x": 0.667, - "y": 1 - }, - "o": { - "x": 1, - "y": 0 - }, - "t": 130.667, - "s": [ - 469.596, - 267, - 0 - ], - "to": [ - 0, - 0, - 0 - ], - "ti": [ - 11.833, - -5.798, - 0 - ] - }, - { - "t": 144, - "s": [ - 398.596, - 301.788, - 0 - ] - } - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 31.548, - 25.807, - 0 - ], - "ix": 1 - }, - "s": { - "a": 1, - "k": [ - { - "i": { - "x": [ - 0, - 0, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 0.333, - 0.333, - 0.333 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 16, - "s": [ - 0, - 0, - 100 - ] - }, - { - "i": { - "x": [ - 0.833, - 0.833, - 0.833 - ], - "y": [ - 0.833, - 0.833, - 0.833 - ] - }, - "o": { - "x": [ - 0.167, - 0.167, - 0.167 - ], - "y": [ - 0.167, - 0.167, - 0.167 - ] - }, - "t": 39, - "s": [ - 100, - 100, - 100 - ] - }, - { - "i": { - "x": [ - 0, - 0, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 0.167, - 0.167, - 0.167 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 110, - "s": [ - 100, - 100, - 100 - ] - }, - { - "i": { - "x": [ - 0.667, - 0.667, - 0.667 - ], - "y": [ - 1, - 1, - 1 - ] - }, - "o": { - "x": [ - 1, - 1, - 0.333 - ], - "y": [ - 0, - 0, - 0 - ] - }, - "t": 126.5, - "s": [ - 100, - 100, - 100 - ] - }, - { - "t": 145.6669921875, - "s": [ - 0, - 0, - 100 - ] - } - ], - "ix": 6 - } - }, - "ao": 0, - "shapes": [ - { - "ty": "gr", - "it": [ - { - "ind": 0, - "ty": "sh", - "ix": 1, - "ks": { - "a": 0, - "k": { - "i": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ], - "o": [ - [ - 0, - 0 - ], - [ - 0, - 0 - ], - [ - 0, - 0 - ] - ], - "v": [ - [ - 31.298, - 1.327 - ], - [ - -31.298, - 25.557 - ], - [ - -8.792, - -25.557 - ] - ], - "c": true - }, - "ix": 2 - }, - "nm": "Path 1", - "mn": "ADBE Vector Shape - Group", - "hd": false - }, - { - "ty": "fl", - "c": { - "a": 0, - "k": [ - 1, - 1, - 1, - 1 - ], - "ix": 4 - }, - "o": { - "a": 0, - "k": 100, - "ix": 5 - }, - "r": 1, - "bm": 0, - "nm": "Fill 1", - "mn": "ADBE Vector Graphic - Fill", - "hd": false - }, - { - "ty": "tr", - "p": { - "a": 0, - "k": [ - 31.548, - 25.807 - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 0, - 0 - ], - "ix": 1 - }, - "s": { - "a": 0, - "k": [ - 100, - 100 - ], - "ix": 3 - }, - "r": { - "a": 0, - "k": 0, - "ix": 6 - }, - "o": { - "a": 0, - "k": 100, - "ix": 7 - }, - "sk": { - "a": 0, - "k": 0, - "ix": 4 - }, - "sa": { - "a": 0, - "k": 0, - "ix": 5 - }, - "nm": "Transform" - } - ], - "nm": "Group 1", - "np": 2, - "cix": 2, - "bm": 0, - "ix": 1, - "mn": "ADBE Vector Group", - "hd": false - }, - { - "ty": "st", - "c": { - "a": 0, - "k": [ - 0.258823529412, - 0.666666666667, - 0.992156922583, - 1 - ], - "ix": 3 - }, - "o": { - "a": 0, - "k": 100, - "ix": 4 - }, - "w": { - "a": 0, - "k": 4, - "ix": 5 - }, - "lc": 1, - "lj": 1, - "ml": 4, - "bm": 0, - "nm": "Stroke 1", - "mn": "ADBE Vector Graphic - Stroke", - "hd": false - } - ], - "ip": 17, - "op": 782, - "st": 17, - "bm": 0 - } - ] - } - ], - "layers": [ - { - "ddd": 0, - "ind": 1, - "ty": 0, - "nm": "logo-loading", - "refId": "comp_0", - "sr": 1, - "ks": { - "o": { - "a": 0, - "k": 100, - "ix": 11 - }, - "r": { - "a": 0, - "k": 0, - "ix": 10 - }, - "p": { - "a": 0, - "k": [ - 400, - 300, - 0 - ], - "ix": 2 - }, - "a": { - "a": 0, - "k": [ - 400, - 300, - 0 - ], - "ix": 1 - }, - "s": { - "a": 0, - "k": [ - 100, - 100, - 100 - ], - "ix": 6 - } - }, - "ao": 0, - "w": 800, - "h": 600, - "ip": 0, - "op": 765, - "st": 0, - "bm": 0 - } - ], - "markers": [] -} \ No newline at end of file diff --git a/lib/typescript/components/loaders/AiryLoader/index.module.scss b/lib/typescript/components/loaders/AiryLoader/index.module.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lib/typescript/components/loaders/AiryLoader/index.tsx b/lib/typescript/components/loaders/AiryLoader/index.tsx deleted file mode 100644 index 5546964084..0000000000 --- a/lib/typescript/components/loaders/AiryLoader/index.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import React from 'react'; -import Lottie from 'react-lottie'; -import animationData from './data.json'; - -type AiryLoaderProps = { - height?: number; - width?: number; - loop?: boolean; - autoplay?: boolean; - position?: 'absolute' | 'relative'; - top?: number; - right?: number; - bottom?: number; - left?: number; -}; - -export const AiryLoader = (props: AiryLoaderProps) => { - const {height, width, loop, autoplay, position, top, right, bottom, left} = props; - const margin = 88; - - const defaultOptions = { - loop: loop || true, - autoplay: autoplay || true, - animationData: animationData, - rendererSettings: { - preserveAspectRatio: 'xMidYMid slice', - }, - }; - - return ( -
- -
- ); -}; diff --git a/lib/typescript/components/loaders/InstallerLoader/index.module.scss b/lib/typescript/components/loaders/InstallerLoader/index.module.scss deleted file mode 100644 index 8322e02713..0000000000 --- a/lib/typescript/components/loaders/InstallerLoader/index.module.scss +++ /dev/null @@ -1,20 +0,0 @@ -.container { - background: transparent; - pointer-events: none; -} - -.containerInstalling { - display: flex; - align-items: center; - justify-content: center; - background: rgba($color: #000000, $alpha: 0.3); - pointer-events: all; -} - -.loader { - display: none; -} - -.loaderInstalling { - position: absolute; -} diff --git a/lib/typescript/components/loaders/InstallerLoader/index.tsx b/lib/typescript/components/loaders/InstallerLoader/index.tsx deleted file mode 100644 index bdb886c4f7..0000000000 --- a/lib/typescript/components/loaders/InstallerLoader/index.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import React from 'react'; -import styles from './index.module.scss'; -import Lottie from 'react-lottie'; -import animationData from './spinnerLoader.json'; - -type InstallerLoaderProps = { - children?: React.ReactNode; - marginTop?: number; - marginRight?: number; - marginBottom?: number; - marginLeft?: number; - borderRadius?: number; - installing: boolean; - height?: number; - width?: number; - loop?: boolean; - autoplay?: boolean; -}; - -export const InstallerLoader = (props: InstallerLoaderProps) => { - const { - children, - marginTop, - marginRight, - marginBottom, - marginLeft, - borderRadius, - installing, - height, - width, - loop, - autoplay, - } = props; - - const defaultOptions = { - loop: loop || true, - autoplay: autoplay || true, - animationData: animationData, - rendererSettings: { - preserveAspectRatio: 'xMidYMid slice', - }, - }; - - return ( -
- {installing && ( -
- -
- )} - {children} -
- ); -}; diff --git a/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json b/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json deleted file mode 100644 index 69ce9ae4c9..0000000000 --- a/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json +++ /dev/null @@ -1 +0,0 @@ -{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.21","a":"","k":"","d":"","tc":""},"fr":60,"ip":0,"op":90,"w":246,"h":246,"nm":"loader for public","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","parent":2,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":90,"s":[360]}],"ix":10},"p":{"a":0,"k":[3.002,-217.775,0],"ix":2},"a":{"a":0,"k":[3.002,-217.775,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[239.598,239.598],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":28,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.002,-217.775],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44.25,"s":[0]},{"t":90,"s":[60]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[10]},{"t":44.25,"s":[70]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":90,"s":[144]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"color","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":360,"ix":10},"p":{"a":0,"k":[123,123,0],"ix":2},"a":{"a":0,"k":[3.002,-217.775,0],"ix":1},"s":{"a":0,"k":[89.983,89.983,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[239.598,239.598],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":32,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.418,0.922,0.954,0.5,0.43,0.796,0.97,1,0.441,0.669,0.986],"ix":8}},"s":{"a":0,"k":[-118.969,-118.703],"ix":4},"e":{"a":0,"k":[122.126,120.78],"ix":5},"t":1,"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.002,-217.775],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/lib/typescript/components/loaders/index.ts b/lib/typescript/components/loaders/index.ts index 1b2b78e05b..39d4fb6b4b 100644 --- a/lib/typescript/components/loaders/index.ts +++ b/lib/typescript/components/loaders/index.ts @@ -1,3 +1 @@ export * from './SimpleLoader'; -export * from './InstallerLoader'; -export * from './AiryLoader'; diff --git a/lib/typescript/components/tooltip/index.module.scss b/lib/typescript/components/tooltip/index.module.scss index 456d501db3..ef727c266a 100644 --- a/lib/typescript/components/tooltip/index.module.scss +++ b/lib/typescript/components/tooltip/index.module.scss @@ -65,7 +65,6 @@ padding: 4px 6px; color: var(--color-text-contrast); position: relative; - z-index: 4; } .hoverElement:hover ~ .tooltipContent.top { diff --git a/lib/typescript/components/tooltip/index.tsx b/lib/typescript/components/tooltip/index.tsx index 66f2d1f98f..b0f0329a24 100644 --- a/lib/typescript/components/tooltip/index.tsx +++ b/lib/typescript/components/tooltip/index.tsx @@ -8,31 +8,14 @@ type TooltipProps = { hoverElementWidth: number; tooltipContent: string; direction: 'top' | 'right' | 'bottom' | 'left' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'; - position?: 'absolute' | 'relative'; - top?: number; - right?: number; - bottom?: number; - left?: number; navigateTo?: string; }; export const Tooltip = (props: TooltipProps) => { - const { - hoverElement, - hoverElementHeight, - hoverElementWidth, - tooltipContent, - direction, - position, - navigateTo, - top, - right, - bottom, - left, - } = props; + const {hoverElement, hoverElementHeight, hoverElementWidth, tooltipContent, direction, navigateTo} = props; const navigate = useNavigate(); - const leftDirection = direction === 'bottomLeft' || direction === 'topLeft'; - const rightDirection = direction === 'bottomRight' || direction === 'topRight'; + const left = direction === 'bottomLeft' || direction === 'topLeft'; + const right = direction === 'bottomRight' || direction === 'topRight'; const margin = hoverElementWidth + 5; const handleOnClick = (event: React.MouseEvent) => { @@ -54,17 +37,7 @@ export const Tooltip = (props: TooltipProps) => {
{tooltipContent} diff --git a/lib/typescript/model/Components.ts b/lib/typescript/model/Components.ts index 7ddd5a5975..689a85044b 100644 --- a/lib/typescript/model/Components.ts +++ b/lib/typescript/model/Components.ts @@ -1,4 +1,3 @@ -import {InstallationStatus} from './Connectors'; import {Source} from './Source'; export interface Components { @@ -12,13 +11,13 @@ export interface Components { export interface ComponentInfo { displayName: string; name: string; + installed: boolean; availableFor: string; description: string; category: string; price: string; docs: string; source: Source; - installationStatus: InstallationStatus; isChannel?: string; configurationValues?: string; } diff --git a/lib/typescript/model/Connectors.ts b/lib/typescript/model/Connectors.ts index 68fec2bf78..8e24fd2024 100644 --- a/lib/typescript/model/Connectors.ts +++ b/lib/typescript/model/Connectors.ts @@ -1,7 +1,6 @@ import {Source} from './Source'; export enum ConnectorName { - amazonLexV2 = 'amazon-lex-v2-connector', apiAdmin = 'api-admin', apiCommunication = 'api-communication', apiContacts = 'api-contacts', @@ -26,12 +25,6 @@ export enum ConnectorName { zendenkConnector = 'zendesk-connector', } -export enum InstallationStatus { - installed = 'installed', - pending = 'pending', - uninstalled = 'uninstalled', -} - export enum ConnectorPrice { free = 'Free', paid = 'Paid', @@ -41,7 +34,7 @@ export enum ConnectorPrice { export type Connector = { name?: string; displayName?: string; - installationStatus?: InstallationStatus; + isInstalled?: boolean; isEnabled?: boolean; isHealthy?: boolean; isConfigured?: boolean; diff --git a/lib/typescript/model/Source.ts b/lib/typescript/model/Source.ts index 19ed6ce909..0656856d6b 100644 --- a/lib/typescript/model/Source.ts +++ b/lib/typescript/model/Source.ts @@ -19,7 +19,6 @@ export enum Source { frontendInbox = 'frontend-inbox', ibmWatsonAssistant = 'ibmWatsonAssistant', amazons3 = 'amazons3', - amazonLexV2 = 'amazonLexV2', } export const prettifySource = (source: string) => diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index 9c398633c0..e903217fb2 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -386,9 +386,6 @@ const resources = { //IBM Watson Assistant ibmDescription: 'IBM Watson Assistant uses artificial intelligence that understands customers.', - //Amazon Lex V2 - amazonLexV2Description: 'A web service for building conversational interface for apps using voice and text.', - //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) is an object storage service.', @@ -485,7 +482,6 @@ const resources = { updateSuccessfulConfiguration: 'Configuration successful updated', failedConfiguration: 'Applying configuration failed', updateFailedConfiguration: 'Updating configuration failed', - tooltipInstallingQueue: 'Please wait for other connectors to be installed/uninstalled', //Request Access comingSoon: 'Coming Soon', @@ -990,10 +986,6 @@ const resources = { //IBM Watson Assistant ibmDescription: 'IBM Watson Assistant verwendet künstliche Intelligenz, die den Kunden versteht.', - //Amazon Lex V2 - amazonLexV2Description: - 'Ein Webdienst zur Erstellung von Konversationsschnittstellen für Anwendungen mit Sprache und Text.', - //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherdienst.', @@ -1052,7 +1044,6 @@ const resources = { updateSuccessfulConfiguration: 'Konfiguration erfolgreich aktualisiert', failedConfiguration: 'Anwenden der Konfiguration fehlgeschlagen', updateFailedConfiguration: 'Aktualisierung der Konfiguration fehlgeschlagen', - tooltipInstallingQueue: 'Bitte warten Sie, bis andere Connector installiert/deinstalliert sind', //Request Access @@ -1509,10 +1500,6 @@ const resources = { //IBM Watson Assistant ibmDescription: `L'assistant IBM Watson utilise une intelligence artificielle qui comprend les clients.`, - //Amazon Lex V2 - amazonLexV2Description: - 'Un service web pour construire une interface conversationnelle pour les applications utilisant la voix et le texte.', - //Amazon S3 amazons3Description: `Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets.`, @@ -1608,7 +1595,6 @@ const resources = { updateSuccessfulConfiguration: 'Configuration mise à jour avec succès', failedConfiguration: 'La configuration a échoué', updateFailedConfiguration: 'Échec de la mise à jour de la configuration', - tooltipInstallingQueue: `Veuillez attendre que d'autres connecteurs soient installés/désinstallés.`, //Request Access comingSoon: 'Prochainement', @@ -2071,10 +2057,6 @@ const resources = { //IBM Watson Assistant ibmDescription: 'El Asistente Watson de IBM utiliza inteligencia artificial que entiende a los clientes.', - //Amazon Lex V2 - amazonLexV2Description: - 'Un servicio web para construir una interfaz conversacional para aplicaciones utilizando voz y texto.', - //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos.', @@ -2171,7 +2153,6 @@ const resources = { updateSuccessfulConfiguration: 'Configuración actualizada con éxito', failedConfiguration: 'Fallo en la aplicación de la configuración', updateFailedConfiguration: 'Fallo en la actualización de la configuración', - tooltipInstallingQueue: 'Espere a que se instalen/desinstalen otros conectores', //Request Access comingSoon: 'Próximamente', diff --git a/package.json b/package.json index b84911af29..613cf07ce9 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,6 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/user-event": "^14.4.3", "@types/jest": "^28.1.7", - "react-lottie": "^1.2.3", - "@types/react-lottie": "^1.2.6", "audio-recorder-polyfill": "^0.4.1", "camelcase-keys": "^8.0.2", "core-js": "3.25.5", diff --git a/yarn.lock b/yarn.lock index 72f3b1ed21..c3d0d8fe32 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,12 +29,12 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.4", "@babel/compat-data@^7.20.0": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.3", "@babel/compat-data@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" + integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== -"@babel/core@7.19.3": +"@babel/core@7.19.3", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.5": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== @@ -55,33 +55,12 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f" - integrity sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.6" - "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helpers" "^7.19.4" - "@babel/parser" "^7.19.6" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.6" - "@babel/types" "^7.19.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/generator@^7.19.3", "@babel/generator@^7.19.6", "@babel/generator@^7.20.1", "@babel/generator@^7.7.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.1.tgz#ef32ecd426222624cbd94871a7024639cf61a9fa" - integrity sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg== +"@babel/generator@^7.19.3", "@babel/generator@^7.7.2": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" + integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== dependencies: - "@babel/types" "^7.20.0" + "@babel/types" "^7.19.3" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -93,37 +72,45 @@ "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" - integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a" + integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/types" "^7.18.6" "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" + integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== dependencies: - "@babel/compat-data" "^7.20.0" + "@babel/compat-data" "^7.19.3" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b" - integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" + integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-member-expression-to-functions" "^7.18.6" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-replace-supers" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": +"@babel/helper-create-regexp-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" + integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.1.0" + +"@babel/helper-create-regexp-features-plugin@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== @@ -143,6 +130,11 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-environment-visitor@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" + integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== + "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" @@ -155,7 +147,23 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": +"@babel/helper-function-name@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" + integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== + dependencies: + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" + integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== + dependencies: + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-function-name@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== @@ -170,6 +178,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-member-expression-to-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" + integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-member-expression-to-functions@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" @@ -184,19 +199,19 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0", "@babel/helper-module-transforms@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz#6c52cc3ac63b70952d33ee987cbee1c9368b533f" - integrity sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.19.4" + "@babel/helper-simple-access" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-validator-identifier" "^7.18.6" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.6" - "@babel/types" "^7.19.4" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -205,12 +220,22 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== -"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": +"@babel/helper-remap-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23" + integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-wrap-function" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== @@ -220,30 +245,41 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" - integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== +"@babel/helper-replace-supers@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" + integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== + dependencies: + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.19.1" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helper-simple-access@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" - integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== dependencies: - "@babel/types" "^7.19.4" + "@babel/types" "^7.18.6" "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== dependencies: - "@babel/types" "^7.20.0" + "@babel/types" "^7.18.9" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -257,7 +293,17 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== @@ -267,26 +313,45 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== +"@babel/helper-wrap-function@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073" + integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== + dependencies: + "@babel/helper-function-name" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + "@babel/helper-wrap-function@^7.18.9": + version "7.18.11" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" + integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== + dependencies: + "@babel/helper-function-name" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.11" + "@babel/types" "^7.18.10" + +"@babel/helpers@^7.19.0": version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" - integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" + integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== dependencies: - "@babel/helper-function-name" "^7.19.0" "@babel/template" "^7.18.10" "@babel/traverse" "^7.19.0" "@babel/types" "^7.19.0" -"@babel/helpers@^7.19.0", "@babel/helpers@^7.19.4": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== +"@babel/highlight@^7.10.4": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" + integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": +"@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== @@ -295,10 +360,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.6", "@babel/parser@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.1.tgz#3e045a92f7b4623cafc2425eddcb8cf2e54f9cc5" - integrity sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" + integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -317,9 +382,9 @@ "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-async-generator-functions@^7.19.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz#352f02baa5d69f4e7529bdac39aaa02d41146af9" - integrity sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g== + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" + integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-plugin-utils" "^7.19.0" @@ -488,11 +553,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" + integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -571,12 +636,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== +"@babel/plugin-syntax-typescript@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" + integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" @@ -602,9 +674,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.19.4": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz#91fe5e6ffc9ba13cb6c95ed7f0b1204f68c988c5" - integrity sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w== + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz#315d70f68ce64426db379a3d830e7ac30be02e9b" + integrity sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ== dependencies: "@babel/helper-plugin-utils" "^7.19.0" @@ -631,9 +703,9 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.19.4": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz#712829ef4825d9cc04bb379de316f981e9a6f648" - integrity sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA== + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz#46890722687b9b89e1369ad0bd8dc6c5a3b4319d" + integrity sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA== dependencies: "@babel/helper-plugin-utils" "^7.19.0" @@ -691,31 +763,34 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.18.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz#aca391801ae55d19c4d8d2ebfeaa33df5f2a2cbd" - integrity sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" + integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== dependencies: - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c" - integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" + integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== dependencies: - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-simple-access" "^7.19.4" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.19.0": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz#59e2a84064b5736a4471b1aa7b13d4431d327e0d" - integrity sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ== + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f" + integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-module-transforms" "^7.19.0" "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-validator-identifier" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" @@ -749,11 +824,11 @@ "@babel/helper-replace-supers" "^7.18.6" "@babel/plugin-transform-parameters@^7.18.8": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz#9a5aa370fdcce36f110455e9369db7afca0f9eeb" - integrity sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ== + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" @@ -762,10 +837,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-constant-elements@^7.18.12": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz#edf3bec47eb98f14e84fa0af137fcc6aad8e0443" - integrity sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw== +"@babel/plugin-transform-react-constant-elements@^7.17.12": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.9.tgz#ff6aeedd38f57ba6b41dcf824fcc8bcedb3e783f" + integrity sha512-IrTYh1I3YCEL1trjknnlLKTp5JggjzhKl/d3ibzPc97JhpFcDTr38Jdek/oX4cFbS6By0bXJcOkpRvJ5ZHK2wQ== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -784,15 +859,15 @@ "@babel/plugin-transform-react-jsx" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" - integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz#2721e96d31df96e3b7ad48ff446995d26bc028ff" + integrity sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.19.0" + "@babel/types" "^7.18.6" "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" @@ -854,13 +929,13 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.0.tgz#2c7ec62b8bfc21482f3748789ba294a46a375169" - integrity sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.6.tgz#8f4ade1a9cf253e5cf7c7c20173082c2c08a50a7" + integrity sha512-ijHNhzIrLj5lQCnI6aaNVRtGVuUZhOXFLRVFs7lLrkXTHip4FKty5oAuQdk4tywG0/WjXmjTfQCWmuzrvFer1w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-syntax-typescript" "^7.20.0" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-typescript" "^7.18.6" "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" @@ -877,7 +952,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.19.4": +"@babel/preset-env@^7.18.2", "@babel/preset-env@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.4.tgz#4c91ce2e1f994f717efb4237891c3ad2d808c94b" integrity sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg== @@ -969,7 +1044,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.18.6": +"@babel/preset-react@^7.17.12", "@babel/preset-react@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== @@ -981,7 +1056,7 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" -"@babel/preset-typescript@^7.18.6": +"@babel/preset-typescript@^7.17.12", "@babel/preset-typescript@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== @@ -991,13 +1066,13 @@ "@babel/plugin-transform-typescript" "^7.18.6" "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" - integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== dependencies: - regenerator-runtime "^0.13.10" + regenerator-runtime "^0.13.4" -"@babel/template@^7.18.10", "@babel/template@^7.3.3": +"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -1006,26 +1081,26 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3", "@babel/traverse@^7.19.6", "@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== +"@babel/traverse@^7.18.11", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3", "@babel/traverse@^7.7.2": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" + integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" + "@babel/generator" "^7.19.3" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/parser" "^7.19.3" + "@babel/types" "^7.19.3" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.0.tgz#52c94cf8a7e24e89d2a194c25c35b17a64871479" - integrity sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" + integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -1245,13 +1320,6 @@ dependencies: jest-get-type "^28.0.2" -"@jest/expect-utils@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" - integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== - dependencies: - jest-get-type "^29.2.0" - "@jest/expect@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" @@ -1388,22 +1456,22 @@ slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/transform@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" - integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== +"@jest/transform@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.0.tgz#1c55ca549f64810351df999265a29f8ead51be15" + integrity sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.2.1" + "@jest/types" "^29.2.0" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" + jest-haste-map "^29.2.0" jest-regex-util "^29.2.0" - jest-util "^29.2.1" + jest-util "^29.2.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1421,7 +1489,7 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.2.1": +"@jest/types@^29.2.0", "@jest/types@^29.2.1": version "29.2.1" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== @@ -1450,12 +1518,17 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== + +"@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== @@ -1468,7 +1541,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -1482,12 +1555,12 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" @@ -1551,9 +1624,9 @@ integrity sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg== "@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== + version "0.24.20" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" + integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -1574,111 +1647,111 @@ resolved "https://registry.yarnpkg.com/@stomp/stompjs/-/stompjs-6.1.2.tgz#4ac3c380e8d1de1da94a3623d404e67de69dd01e" integrity sha512-FHDTrIFM5Ospi4L3Xhj6v2+NzCVAeNDcBe95YjUWhWiRMrBF6uN3I7AUOlRgT6jU/2WQvvYK8ZaIxFfxFp+uHQ== -"@svgr/babel-plugin-add-jsx-attribute@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba" - integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ== +"@svgr/babel-plugin-add-jsx-attribute@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.0.tgz#21788f7e982aacafc805ed30a14048a1406fbabc" + integrity sha512-Cp1JR1IPrQNvPRbkfcPmax52iunBC+eQDyBce8feOIIbVH6ZpVhErYoJtPWRBj2rKi4Wi9HvCm1+L1UD6QlBmg== -"@svgr/babel-plugin-remove-jsx-attribute@*": +"@svgr/babel-plugin-remove-jsx-attribute@^6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz#652bfd4ed0a0699843585cda96faeb09d6e1306e" integrity sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA== -"@svgr/babel-plugin-remove-jsx-empty-expression@*": +"@svgr/babel-plugin-remove-jsx-empty-expression@^6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz#4b78994ab7d39032c729903fc2dd5c0fa4565cb8" integrity sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw== -"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60" - integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg== - -"@svgr/babel-plugin-svg-dynamic-title@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4" - integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw== - -"@svgr/babel-plugin-svg-em-dimensions@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217" - integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA== - -"@svgr/babel-plugin-transform-react-native-svg@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305" - integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg== - -"@svgr/babel-plugin-transform-svg-component@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250" - integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ== - -"@svgr/babel-preset@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828" - integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1" - "@svgr/babel-plugin-remove-jsx-attribute" "*" - "@svgr/babel-plugin-remove-jsx-empty-expression" "*" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1" - "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1" - "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1" - "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" - "@svgr/babel-plugin-transform-svg-component" "^6.5.1" - -"@svgr/core@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a" - integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== - dependencies: - "@babel/core" "^7.19.6" - "@svgr/babel-preset" "^6.5.1" - "@svgr/plugin-jsx" "^6.5.1" +"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.0.tgz#ca57c0a62a9c22ff11cdb475dc9a2b35586335d1" + integrity sha512-XWm64/rSPUCQ+MFyA9lhMO+w8bOZvkTvovRIU1lpIy63ysPaVAFtxjQiZj+S7QaLaLGUXkSkf8WZsaN+QPo/gA== + +"@svgr/babel-plugin-svg-dynamic-title@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.0.tgz#57c0e0409757373d641f115d33cf2559b47bff77" + integrity sha512-JIF2D2ltiWFGlTw2fJ9jJg1fNT9rWjOD2Cf0/xzeW6Z2LIRQTHcRHxpZq359+SRWtEPsCXEWV2Xmd+DMBj6dBw== + +"@svgr/babel-plugin-svg-em-dimensions@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.0.tgz#dbca40a18c308f135b4b672ea8e410855e8e3352" + integrity sha512-uuo0FfLP4Nu2zncOcoUFDzZdXWma2bxkTGk0etRThs4/PghvPIGaW8cPhCg6yJ8zpaauWcKV0wZtzKlJRCtVzg== + +"@svgr/babel-plugin-transform-react-native-svg@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.0.tgz#a5453127365b925a7f766615ef6f5cfd01018f98" + integrity sha512-VMRWyOmrV+DaEFPgP3hZMsFgs2g87ojs3txw0Rx8iz6Nf/E3UoHUwTqpkSCWd3Hsnc9gMOY9+wl6+/Ycleh1sw== + +"@svgr/babel-plugin-transform-svg-component@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.0.tgz#ec116e9223a02c6dcd9f8cb2bdbf174a3c2ef2f5" + integrity sha512-b67Ul3SelaqvGEEG/1B3VJ03KUtGFgRQjRLCCjdttMQLcYa9l/izQFEclNFx53pNqhijUMNKHPhGMY/CWGVKig== + +"@svgr/babel-preset@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.0.tgz#dc14bbe1c74e0c8c4ab77221064645b3399836db" + integrity sha512-UWM98PKVuMqw2UZo8YO3erI6nF1n7/XBYTXBqR0QhZP7HTjYK6QxFNvPfIshddy1hBdzhVpkf148Vg8xiVOtyg== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^6.5.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^6.5.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.5.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.0" + "@svgr/babel-plugin-svg-dynamic-title" "^6.5.0" + "@svgr/babel-plugin-svg-em-dimensions" "^6.5.0" + "@svgr/babel-plugin-transform-react-native-svg" "^6.5.0" + "@svgr/babel-plugin-transform-svg-component" "^6.5.0" + +"@svgr/core@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.0.tgz#13af3337b7b66a2b6ebe197b67b62badbe490bf1" + integrity sha512-jIbu36GMjfK8HCCQitkfVVeQ2vSXGfq0ef0GO9HUxZGjal6Kvpkk4PwpkFP+OyCzF+skQFT9aWrUqekT3pKF8w== + dependencies: + "@babel/core" "^7.18.5" + "@svgr/babel-preset" "^6.5.0" + "@svgr/plugin-jsx" "^6.5.0" camelcase "^6.2.0" cosmiconfig "^7.0.1" -"@svgr/hast-util-to-babel-ast@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2" - integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw== +"@svgr/hast-util-to-babel-ast@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.0.tgz#0e4aebea26328e22a6fff940711472a47ec24e5c" + integrity sha512-PPy94U/EiPQ2dY0b4jEqj4QOdDRq6DG7aTHjpGaL8HlKSHkpU1DpjfywCXTJqtOdCo2FywjWvg0U2FhqMeUJaA== dependencies: - "@babel/types" "^7.20.0" - entities "^4.4.0" + "@babel/types" "^7.18.4" + entities "^4.3.0" -"@svgr/plugin-jsx@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072" - integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw== +"@svgr/plugin-jsx@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.0.tgz#c23ba0048007f1591fe7a9b060be373e4771487b" + integrity sha512-1CHMqOBKoNk/ZPU+iGXKcQPC6q9zaD7UOI99J+BaGY5bdCztcf5bZyi0QZSDRJtCQpdofeVv7XfBYov2mtl0Pw== dependencies: - "@babel/core" "^7.19.6" - "@svgr/babel-preset" "^6.5.1" - "@svgr/hast-util-to-babel-ast" "^6.5.1" + "@babel/core" "^7.18.5" + "@svgr/babel-preset" "^6.5.0" + "@svgr/hast-util-to-babel-ast" "^6.5.0" svg-parser "^2.0.4" -"@svgr/plugin-svgo@^6.5.0", "@svgr/plugin-svgo@^6.5.1": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84" - integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ== +"@svgr/plugin-svgo@^6.5.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.0.tgz#1d9b7d0909bde9fe7d724569c7f7833f3a7bacd7" + integrity sha512-8Zv1Yyv6I7HlIqrqGFM0sDKQrhjbfNZJawR8UjIaVWSb0tKZP1Ra6ymhqIFu6FT6kDRD0Ct5NlQZ10VUujSspw== dependencies: cosmiconfig "^7.0.1" deepmerge "^4.2.2" svgo "^2.8.0" "@svgr/webpack@^6.5.0": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8" - integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== - dependencies: - "@babel/core" "^7.19.6" - "@babel/plugin-transform-react-constant-elements" "^7.18.12" - "@babel/preset-env" "^7.19.4" - "@babel/preset-react" "^7.18.6" - "@babel/preset-typescript" "^7.18.6" - "@svgr/core" "^6.5.1" - "@svgr/plugin-jsx" "^6.5.1" - "@svgr/plugin-svgo" "^6.5.1" + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.0.tgz#663407b826cb96a3c3394cfe1f9bd107e693770a" + integrity sha512-rM/Z4pwMhqvAXEHoHIlE4SeTb0ToQNmJuBdiHwhP2ZtywyX6XqrgCv2WX7K/UCgNYJgYbekuylgyjnuLUHTcZQ== + dependencies: + "@babel/core" "^7.18.5" + "@babel/plugin-transform-react-constant-elements" "^7.17.12" + "@babel/preset-env" "^7.18.2" + "@babel/preset-react" "^7.17.12" + "@babel/preset-typescript" "^7.17.12" + "@svgr/core" "^6.5.0" + "@svgr/plugin-jsx" "^6.5.0" + "@svgr/plugin-svgo" "^6.5.0" "@testing-library/dom@^8.19.0", "@testing-library/dom@^8.5.0": version "8.19.0" @@ -1734,24 +1807,24 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + version "1.0.8" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" + integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== "@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" + integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== "@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + version "1.0.1" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" + integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== "@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== "@types/aria-query@^4.2.0": version "4.2.2" @@ -1785,9 +1858,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + version "7.17.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" + integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== dependencies: "@babel/types" "^7.3.0" @@ -1834,44 +1907,39 @@ integrity sha512-awMC2n4iRwJ6VWpQDA7dPqJhImeXHsVeEoQKWkdGB2cau+h/6erGoVre5Dk8p/DL1LIiLUcK6MnC3mibiKRRFg== "@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + version "3.7.3" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" + integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.9" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.9.tgz#f7371980148697f4b582b086630319b55324b5aa" - integrity sha512-jFCSo4wJzlHQLCpceUhUnXdrPuCNOjGFMQ8Eg6JXxlz3QaCKOb7eGi2cephQdM4XTYsNej69P9JDJ1zqNIbncQ== + version "8.4.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575" + integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/estree@^0.0.51": +"@types/estree@*", "@types/estree@^0.0.51": version "0.0.51" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.31" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" - integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== + version "4.17.28" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.14" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -1936,18 +2004,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.1.tgz#31fda30bdf2861706abc5f1730be78bed54f83ee" - integrity sha512-nKixEdnGDqFOZkMTF74avFNr3yRqB1ZJ6sRZv5/28D5x2oLN14KApv7F9mfDT/vUic0L3tRCsh3XWpWjtJisUQ== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/jest@^28.1.7": - version "28.1.8" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" - integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== +"@types/jest@*", "@types/jest@^28.1.7": + version "28.1.7" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.7.tgz#a680c5d05b69634c2d54a63cb106d7fb1adaba16" + integrity sha512-acDN4VHD40V24tgu0iC44jchXavRNVFXQ/E6Z5XNsswgoSO/4NgsXoEYmPUGookKldlZQyIpmrEXsHI9cA3ZTA== dependencies: expect "^28.0.0" pretty-format "^28.0.0" @@ -1974,9 +2034,9 @@ "@types/lodash" "*" "@types/lodash@*": - version "4.14.187" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.187.tgz#122ff0a7192115b4c1a19444ab4482caa77e2c9d" - integrity sha512-MrO/xLXCaUgZy3y96C/iOsaIqZSeupyTImKClHunL5GrmaiII2VwvWmLBu2hwa0Kp0sV19CsyjtrTc/Fx8rg/A== + version "4.14.182" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== "@types/mdast@^3.0.0": version "3.0.10" @@ -1985,30 +2045,30 @@ dependencies: "@types/unist" "*" -"@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== +"@types/mdurl@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/ms@*": version "0.7.31" resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== - -"@types/node@18.11.4": +"@types/node@*", "@types/node@18.11.4": version "18.11.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.4.tgz#7017a52e18dfaad32f55eebd539993014441949c" integrity sha512-BxcJpBu8D3kv/GZkx/gSMz6VnTJREBj/4lbzYOQueUOELkt8WrO6zAcSPmp9uRPEW/d+lUO8QK0W2xnS1hEU0A== "@types/node@^14.14.31": - version "14.18.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.33.tgz#8c29a0036771569662e4635790ffa9e057db379b" - integrity sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg== + version "14.18.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20" + integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig== "@types/parse-json@^4.0.0": version "4.0.0" @@ -2016,9 +2076,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== + version "2.6.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.1.tgz#76e72d8a775eef7ce649c63c8acae1a0824bbaed" + integrity sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw== "@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.5" @@ -2035,27 +2095,13 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@18.0.6": +"@types/react-dom@18.0.6", "@types/react-dom@^18.0.0": version "18.0.6" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== dependencies: "@types/react" "*" -"@types/react-dom@^18.0.0": - version "18.0.8" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.8.tgz#d2606d855186cd42cc1b11e63a71c39525441685" - integrity sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw== - dependencies: - "@types/react" "*" - -"@types/react-lottie@^1.2.6": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@types/react-lottie/-/react-lottie-1.2.6.tgz#4f351dfdf5f93a46a3a9714fbb319f1e0f030eaf" - integrity sha512-fvGJHD7SeUdVESHo7f7erRnXkTWaa/6Mo5TB+R0/ieSftKoFspA4sMlF2qMH6BljXI7ehFJbBtrD5bzDxPCkGg== - dependencies: - "@types/react" "*" - "@types/react-redux@7.1.24": version "7.1.24" resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.24.tgz#6caaff1603aba17b27d20f8ad073e4c077e975c0" @@ -2076,9 +2122,9 @@ "@types/react-router" "*" "@types/react-router@*": - version "5.1.19" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.19.tgz#9b404246fba7f91474d7008a3d48c17b6e075ad6" - integrity sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA== + version "5.1.18" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3" + integrity sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g== dependencies: "@types/history" "^4.7.11" "@types/react" "*" @@ -2130,11 +2176,11 @@ "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" - integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== dependencies: - "@types/mime" "*" + "@types/mime" "^1" "@types/node" "*" "@types/sinonjs__fake-timers@8.1.1": @@ -2160,9 +2206,9 @@ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/testing-library__jest-dom@^5.9.1": - version "5.14.5" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" - integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== + version "5.14.3" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz#ee6c7ffe9f8595882ee7bda8af33ae7b8789ef17" + integrity sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw== dependencies: "@types/jest" "*" @@ -2194,9 +2240,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== + version "17.0.10" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" + integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== dependencies: "@types/yargs-parser" "*" @@ -2438,13 +2484,13 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" - integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== dependencies: - acorn "^8.1.0" - acorn-walk "^8.0.2" + acorn "^7.1.1" + acorn-walk "^7.1.1" acorn-import-assertions@^1.7.6: version "1.8.0" @@ -2456,20 +2502,25 @@ acorn-jsx@^5.3.1: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.1.1: +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn-walk@^8.0.0, acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^7.4.0: +acorn@^7.1.1, acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +acorn@^8.0.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== agent-base@6: version "6.0.2" @@ -2592,11 +2643,9 @@ argparse@^1.0.7: sprintf-js "~1.0.2" aria-query@^5.0.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== - dependencies: - deep-equal "^2.0.5" + version "5.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" + integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== array-flatten@1.1.1: version "1.1.1" @@ -2608,7 +2657,7 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.5: +array-includes@^3.1.4, array-includes@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== @@ -2652,9 +2701,9 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^3.2.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + version "3.2.3" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== asynckit@^0.4.0: version "0.4.0" @@ -2676,11 +2725,6 @@ autosize@^4.0.2: resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.4.tgz#924f13853a466b633b9309330833936d8bccce03" integrity sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2705,11 +2749,11 @@ babel-jest@^28.1.3: slash "^3.0.0" babel-jest@^29.2.0: - version "29.2.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" - integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.0.tgz#088624f037da90e69a06073305276cbd111d68a8" + integrity sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw== dependencies: - "@jest/transform" "^29.2.2" + "@jest/transform" "^29.2.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -2727,6 +2771,13 @@ babel-loader@^8.2.5: make-dir "^3.1.0" schema-utils "^2.6.5" +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" @@ -2816,14 +2867,6 @@ babel-preset-jest@^29.2.0: babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -2871,10 +2914,10 @@ bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== dependencies: bytes "3.1.2" content-type "~1.0.4" @@ -2884,20 +2927,20 @@ body-parser@1.20.1: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.11.0" + qs "6.10.3" raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.0.14" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7" - integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ== + version "1.0.12" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.12.tgz#28fbd4683f5f2e36feedb833e24ba661cac960c3" + integrity sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" + multicast-dns "^7.2.4" boolbase@^1.0.0: version "1.0.0" @@ -2919,7 +2962,23 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4: +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserslist@^4.14.5: + version "4.20.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" + integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== + dependencies: + caniuse-lite "^1.0.30001332" + electron-to-chromium "^1.4.118" + escalade "^3.1.1" + node-releases "^2.0.3" + picocolors "^1.0.0" + +browserslist@^4.21.3, browserslist@^4.21.4: version "4.21.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== @@ -3022,10 +3081,15 @@ camelcase@^7.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.0.tgz#fd112621b212126741f998d614cbc2a8623fd174" integrity sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ== +caniuse-lite@^1.0.30001332: + version "1.0.30001342" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz#87152b1e3b950d1fbf0093e23f00b6c8e8f1da96" + integrity sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA== + caniuse-lite@^1.0.30001400: - version "1.0.30001429" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz#70cdae959096756a85713b36dd9cb82e62325639" - integrity sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg== + version "1.0.30001406" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz#d0146e7919635479f873b4507517b627f66ab269" + integrity sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg== caseless@~0.12.0: version "0.12.0" @@ -3063,9 +3127,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== character-entities@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" - integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" + integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== check-more-types@^2.24.0: version "2.24.0" @@ -3093,9 +3157,9 @@ chrome-trace-event@^1.0.2: integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== ci-info@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" - integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" + integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -3103,9 +3167,9 @@ cjs-module-lexer@^1.0.0: integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== clean-css@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" - integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== + version "5.3.0" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59" + integrity sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ== dependencies: source-map "~0.6.0" @@ -3122,9 +3186,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-table3@~0.6.1: - version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== + version "0.6.2" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" + integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== dependencies: string-width "^4.2.0" optionalDependencies: @@ -3138,13 +3202,13 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.1" + strip-ansi "^6.0.0" wrap-ansi "^7.0.0" clone-deep@^4.0.1: @@ -3159,7 +3223,7 @@ clone-deep@^4.0.1: co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= collect-v8-coverage@^1.0.0: version "1.0.1" @@ -3183,7 +3247,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@~1.1.4: version "1.1.4" @@ -3191,9 +3255,9 @@ color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" @@ -3240,7 +3304,7 @@ common-tags@^1.8.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= compressible@~2.0.16: version "2.0.18" @@ -3265,12 +3329,12 @@ compression@^1.7.4: computed-style@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/computed-style/-/computed-style-0.1.4.tgz#7f344fd8584b2e425bedca4a1afc0e300bb05d74" - integrity sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w== + integrity sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ= concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= connect-history-api-fallback@^2.0.0: version "2.0.0" @@ -3290,14 +3354,16 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.5.0: version "0.5.0" @@ -3317,31 +3383,26 @@ copy-webpack-plugin@^11.0.0: serialize-javascript "^6.0.0" core-js-compat@^3.25.1: - version "3.26.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.26.0.tgz#94e2cf8ba3e63800c4956ea298a6473bc9d62b44" - integrity sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A== + version "3.25.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138" + integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ== dependencies: browserslist "^4.21.4" core-js-pure@^3.23.3: - version "3.26.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.26.0.tgz#7ad8a5dd7d910756f3124374b50026e23265ca9a" - integrity sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA== + version "3.25.5" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.5.tgz#79716ba54240c6aa9ceba6eee08cf79471ba184d" + integrity sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg== core-js@3.25.5: version "3.25.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.5.tgz#e86f651a2ca8a0237a5f064c2fe56cef89646e27" integrity sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw== -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= core-util-is@~1.0.0: version "1.0.3" @@ -3414,7 +3475,7 @@ css-what@^6.0.1: css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= cssesc@^3.0.0: version "3.0.0" @@ -3446,9 +3507,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" + integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== cypress@10.10.0: version "10.10.0" @@ -3501,7 +3562,7 @@ cypress@10.10.0: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" @@ -3515,9 +3576,9 @@ data-urls@^3.0.2: whatwg-url "^11.0.0" dayjs@^1.10.4: - version "1.11.6" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb" - integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ== + version "1.11.2" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5" + integrity sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw== debug@2.6.9: version "2.6.9" @@ -3540,43 +3601,22 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -decimal.js@^10.4.1: - version "10.4.2" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" - integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== +decimal.js@^10.3.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== decode-named-character-reference@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" - integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + version "1.0.1" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" + integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== dependencies: character-entities "^2.0.0" dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-equal@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" - integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== - dependencies: - call-bind "^1.0.0" - es-get-iterator "^1.1.1" - get-intrinsic "^1.0.1" - is-arguments "^1.0.4" - is-date-object "^1.0.2" - is-regex "^1.1.1" - isarray "^2.0.5" - object-is "^1.1.4" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.3" - which-boxed-primitive "^1.0.1" - which-collection "^1.0.1" - which-typed-array "^1.1.2" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" @@ -3611,7 +3651,7 @@ define-properties@^1.1.3, define-properties@^1.1.4: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= depd@2.0.0: version "2.0.0" @@ -3621,12 +3661,12 @@ depd@2.0.0: depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= dequal@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" + integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== destroy@1.2.0: version "1.2.0" @@ -3648,11 +3688,6 @@ diff-sequences@^28.1.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== -diff-sequences@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" - integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -3673,12 +3708,12 @@ dir-glob@^3.0.1: dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^5.2.2: - version "5.4.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" - integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== + version "5.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" + integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -3785,7 +3820,7 @@ duplexer@^0.1.2: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -3793,12 +3828,17 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.4.118: + version "1.4.138" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.138.tgz#3ec41ca589aaf505dfe2034fde913329af801730" + integrity sha512-IOyp2Seq3w4QLln+yZWcMF3VXhhduz4bwg9gfI+CnP5TkzwNXQ8FCZuwwPsnes73AfWdf5J2n2OXdUwDUspDPQ== electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + version "1.4.254" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz#c6203583890abf88dfc0be046cd72d3b48f8beb6" + integrity sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q== emittery@^0.10.2: version "0.10.2" @@ -3823,7 +3863,7 @@ emojis-list@^3.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= end-of-stream@^1.1.0: version "1.4.4" @@ -3852,10 +3892,10 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== +entities@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" + integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== envinfo@^7.7.3: version "7.8.1" @@ -3870,56 +3910,66 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" error-stack-parser@^2.0.6: - version "2.1.4" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" - integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + version "2.0.7" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57" + integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA== dependencies: - stackframe "^1.3.4" + stackframe "^1.1.1" -es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== +es-abstract@^1.19.0, es-abstract@^1.19.1: + version "1.19.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.1" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.1" + is-string "^1.0.7" + is-weakref "^1.0.1" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-abstract@^1.19.2, es-abstract@^1.19.5: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" + get-intrinsic "^1.1.1" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" - is-callable "^1.2.7" + is-callable "^1.2.4" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" - object-inspect "^1.12.2" + object-inspect "^1.12.0" object-keys "^1.1.1" - object.assign "^4.1.4" + object.assign "^4.1.2" regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" -es-get-iterator@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" - integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.0" - has-symbols "^1.0.1" - is-arguments "^1.1.0" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.5" - isarray "^2.0.5" - es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" @@ -3949,12 +3999,12 @@ escalade@^3.1.1: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escape-string-regexp@^2.0.0: version "2.0.0" @@ -4122,7 +4172,7 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eventemitter2@6.4.7: version "6.4.7" @@ -4179,12 +4229,12 @@ executable@^4.1.1: exenv@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" - integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== + integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50= exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= expect@^28.0.0, expect@^28.1.3: version "28.1.3" @@ -4197,25 +4247,14 @@ expect@^28.0.0, expect@^28.1.3: jest-message-util "^28.1.3" jest-util "^28.1.3" -expect@^29.0.0: - version "29.2.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" - integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== - dependencies: - "@jest/expect-utils" "^29.2.2" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-util "^29.2.1" - express@^4.17.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.1" + body-parser "1.20.0" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.5.0" @@ -4234,7 +4273,7 @@ express@^4.17.3: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.11.0" + qs "6.10.3" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.18.0" @@ -4264,7 +4303,7 @@ extract-zip@2.0.1: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.1" @@ -4277,9 +4316,9 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4295,12 +4334,12 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-sta fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastest-levenshtein@^1.0.12: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + version "1.0.12" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: version "1.13.0" @@ -4317,16 +4356,16 @@ faye-websocket@^0.11.3: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== dependencies: bser "2.1.1" fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" @@ -4406,26 +4445,19 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== follow-redirects@^1.0.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" + version "1.15.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" + integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@^4.0.0: version "4.0.0" @@ -4453,7 +4485,7 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= fs-extra@^9.1.0: version "9.1.0" @@ -4465,7 +4497,7 @@ fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-monkey@^1.0.3: +fs-monkey@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== @@ -4473,7 +4505,7 @@ fs-monkey@^1.0.3: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" @@ -4498,7 +4530,7 @@ function.prototype.name@^1.1.5: functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= functions-have-names@^1.2.2: version "1.2.3" @@ -4515,14 +4547,14 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.3" + has-symbols "^1.0.1" get-package-type@^0.1.0: version "0.1.0" @@ -4559,7 +4591,7 @@ getos@^3.2.1: getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" @@ -4615,9 +4647,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== + version "13.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" + integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== dependencies: type-fest "^0.20.2" @@ -4634,9 +4666,9 @@ globby@^11.0.3: slash "^3.0.0" globby@^13.1.1: - version "13.1.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" - integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== + version "13.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.1.tgz#7c44a93869b0b7612e38f22ed532bfe37b25ea6f" + integrity sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q== dependencies: dir-glob "^3.0.1" fast-glob "^3.2.11" @@ -4645,9 +4677,9 @@ globby@^13.1.1: slash "^4.0.0" google-protobuf@^3.6.1: - version "3.21.2" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" - integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== + version "3.20.1" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.20.1.tgz#1b255c2b59bcda7c399df46c65206aa3c7a0ce8b" + integrity sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw== graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" @@ -4679,7 +4711,7 @@ has-bigints@^1.0.1, has-bigints@^1.0.2: has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" @@ -4732,7 +4764,7 @@ hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" obuf "^1.0.0" @@ -4800,7 +4832,7 @@ htmlparser2@^6.1.0: http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= http-errors@2.0.0: version "2.0.0" @@ -4816,7 +4848,7 @@ http-errors@2.0.0: http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" inherits "2.0.3" @@ -4824,9 +4856,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + version "0.5.6" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" + integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== http-proxy-agent@^5.0.0: version "5.0.0" @@ -4913,7 +4945,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: identity-obj-proxy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= dependencies: harmony-reflect "^1.4.6" @@ -4933,9 +4965,9 @@ ignore@^5.1.8, ignore@^5.2.0: integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== immer@^9.0.7: - version "9.0.16" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.16.tgz#8e7caab80118c2b54b37ad43e05758cdefad0198" - integrity sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ== + version "9.0.14" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.14.tgz#e05b83b63999d26382bb71676c9d827831248a48" + integrity sha512-ubBeqQutOSLIFCUBN03jGeOS6a3DoYlSYwYJTa+gSKEZKU5redJIqkIdZ3JVv/4RZpfcXdAWH5zCNLWPRv2WDw== immutable@^4.0.0: version "4.1.0" @@ -4961,7 +4993,7 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^4.0.0: version "4.0.0" @@ -4971,7 +5003,7 @@ indent-string@^4.0.0: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" @@ -4984,7 +5016,7 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@2.0.0: version "2.0.0" @@ -5020,18 +5052,10 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== -is-arguments@^1.0.4, is-arguments@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-bigint@^1.0.1: version "1.0.4" @@ -5060,10 +5084,10 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^3.0.0: version "3.0.1" @@ -5072,14 +5096,14 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== +is-core-module@^2.2.0, is-core-module@^2.8.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" -is-date-object@^1.0.1, is-date-object@^1.0.2: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -5094,7 +5118,7 @@ is-docker@^2.0.0, is-docker@^2.1.1: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -5121,12 +5145,7 @@ is-installed-globally@~0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - -is-negative-zero@^2.0.2: +is-negative-zero@^2.0.1, is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== @@ -5154,9 +5173,9 @@ is-plain-obj@^3.0.0: integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== is-plain-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" - integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" + integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== is-plain-object@^2.0.4: version "2.0.4" @@ -5170,7 +5189,7 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.1.1, is-regex@^1.1.4: +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -5178,12 +5197,7 @@ is-regex@^1.1.1, is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - -is-shared-array-buffer@^1.0.2: +is-shared-array-buffer@^1.0.1, is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== @@ -5209,47 +5223,23 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" - integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - -is-weakref@^1.0.2: +is-weakref@^1.0.1, is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -5257,25 +5247,20 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isomorphic-fetch@^3.0.0: version "3.0.0" @@ -5288,7 +5273,7 @@ isomorphic-fetch@^3.0.0: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" @@ -5296,9 +5281,9 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + version "5.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" + integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -5325,9 +5310,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + version "3.1.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" + integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -5421,16 +5406,6 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-diff@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" - integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.2.0" - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - jest-docblock@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" @@ -5480,11 +5455,6 @@ jest-get-type@^28.0.2: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== - jest-haste-map@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" @@ -5504,20 +5474,20 @@ jest-haste-map@^28.1.3: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" - integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== +jest-haste-map@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.0.tgz#2410f2ec93958e0bd894818de6c8056eb1b4d6fc" + integrity sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.2.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.2.1" - jest-worker "^29.2.1" + jest-util "^29.2.0" + jest-worker "^29.2.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -5541,16 +5511,6 @@ jest-matcher-utils@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-matcher-utils@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" - integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== - dependencies: - chalk "^4.0.0" - jest-diff "^29.2.1" - jest-get-type "^29.2.0" - pretty-format "^29.2.1" - jest-message-util@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" @@ -5732,7 +5692,7 @@ jest-util@^28.0.0, jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.2.1: +jest-util@^29.2.0, jest-util@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== @@ -5788,13 +5748,13 @@ jest-worker@^28.1.3: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" - integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== +jest-worker@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.0.tgz#b2bd1a81fc7a1ae79a500b05f5feb0d1c0b1a19e" + integrity sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A== dependencies: "@types/node" "*" - jest-util "^29.2.1" + jest-util "^29.2.0" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -5824,20 +5784,20 @@ js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsdom@^20.0.0: - version "20.0.2" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.2.tgz#65ccbed81d5e877c433f353c58bb91ff374127db" - integrity sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA== + version "20.0.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.0.tgz#882825ac9cc5e5bbee704ba16143e1fa78361ebf" + integrity sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA== dependencies: abab "^2.0.6" - acorn "^8.8.0" - acorn-globals "^7.0.0" + acorn "^8.7.1" + acorn-globals "^6.0.0" cssom "^0.5.0" cssstyle "^2.3.0" data-urls "^3.0.2" - decimal.js "^10.4.1" + decimal.js "^10.3.1" domexception "^4.0.0" escodegen "^2.0.0" form-data "^4.0.0" @@ -5845,17 +5805,18 @@ jsdom@^20.0.0: http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.1" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" + nwsapi "^2.2.0" + parse5 "^7.0.0" saxes "^6.0.0" symbol-tree "^3.2.4" - tough-cookie "^4.1.2" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" w3c-xmlserializer "^3.0.0" webidl-conversions "^7.0.0" whatwg-encoding "^2.0.0" whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" - ws "^8.9.0" + ws "^8.8.0" xml-name-validator "^4.0.0" jsesc@^2.5.1: @@ -5866,7 +5827,7 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" @@ -5891,12 +5852,12 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@^1.0.1: version "1.0.1" @@ -5930,12 +5891,12 @@ jsprim@^2.0.2: verror "1.10.0" "jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.3.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" - integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + version "3.3.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz#e624f259143b9062c92b6413ff92a164c80d3ccb" + integrity sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q== dependencies: - array-includes "^3.1.5" - object.assign "^4.1.3" + array-includes "^3.1.4" + object.assign "^4.1.2" kind-of@^6.0.2: version "6.0.3" @@ -5948,9 +5909,9 @@ kleur@^3.0.3: integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== kleur@^4.0.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + version "4.1.4" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" + integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== klona@^2.0.4: version "2.0.5" @@ -5960,7 +5921,7 @@ klona@^2.0.4: lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== + integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= leven@^3.1.0: version "3.1.0" @@ -5978,7 +5939,7 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -5986,7 +5947,7 @@ levn@~0.3.0: line-height@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/line-height/-/line-height-0.3.1.tgz#4b1205edde182872a5efa3c8f620b3187a9c54c9" - integrity sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w== + integrity sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk= dependencies: computed-style "~0.1.3" @@ -6034,9 +5995,9 @@ loader-utils@^1.1.0: json5 "^1.0.1" loader-utils@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.3.tgz#d4b15b8504c63d1fc3f2ade52d41bc8459d6ede1" - integrity sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A== + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -6064,12 +6025,12 @@ lodash-es@^4.17.15, lodash-es@^4.17.21: lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= lodash.merge@^4.6.2: version "4.6.2" @@ -6079,12 +6040,12 @@ lodash.merge@^4.6.2: lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= lodash@^4.0.1, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" @@ -6116,11 +6077,6 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lottie-web@^5.1.3: - version "5.9.6" - resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.9.6.tgz#62ae68563355d3e04aa75d53dec3dd4bea0e57c9" - integrity sha512-JFs7KsHwflugH5qIXBpB4905yC1Sub2MZWtl/elvO/QC6qj1ApqbUZJyjzJseJUtVpgiDaXQLjBlIJGS7UUUXA== - lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -6138,7 +6094,7 @@ lru-cache@^6.0.0: lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ== + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" @@ -6170,13 +6126,13 @@ material-colors@^1.2.1: integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== mdast-util-definitions@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" - integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== + version "5.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" + integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - unist-util-visit "^4.0.0" + unist-util-visit "^3.0.0" mdast-util-from-markdown@^1.0.0: version "1.2.0" @@ -6197,15 +6153,16 @@ mdast-util-from-markdown@^1.0.0: uvu "^0.5.0" mdast-util-to-hast@^12.1.0: - version "12.2.4" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.4.tgz#34c1ef2b6cf01c27b3e3504e2c977c76f722e7e1" - integrity sha512-a21xoxSef1l8VhHxS1Dnyioz6grrJkoaCUgGzMD/7dWHvboYX3VW53esRUfB5tgTyz4Yos1n25SPcj35dJqmAg== + version "12.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz#89a2bb405eaf3b05eb8bf45157678f35eef5dbca" + integrity sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" + "@types/mdurl" "^1.0.0" mdast-util-definitions "^5.0.0" - micromark-util-sanitize-uri "^1.1.0" - trim-lines "^3.0.0" + mdurl "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" unist-builder "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" @@ -6221,22 +6178,27 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= memfs@^3.4.3: - version "3.4.9" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.9.tgz#403bb953776d72fef4e39e1197a25ffa156d143a" - integrity sha512-3rm8kbrzpUGRyPKSGuk387NZOwQ90O4rI9tsWQkzNW7BLSnKGp23RsEsKK8N8QVCrtJoAMqy3spxHC4os4G6PQ== + version "3.4.3" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.3.tgz#fc08ac32363b6ea6c95381cabb4d67838180d4e1" + integrity sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg== dependencies: - fs-monkey "^1.0.3" + fs-monkey "1.0.3" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-stream@^2.0.0: version "2.0.0" @@ -6251,7 +6213,7 @@ merge2@^1.3.0, merge2@^1.4.1: methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromark-core-commonmark@^1.0.1: version "1.0.6" @@ -6378,9 +6340,9 @@ micromark-util-encode@^1.0.0: integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== micromark-util-html-tag-name@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" - integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" + integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== micromark-util-normalize-identifier@^1.0.0: version "1.0.0" @@ -6396,10 +6358,10 @@ micromark-util-resolve-all@^1.0.0: dependencies: micromark-util-types "^1.0.0" -micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" - integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== +micromark-util-sanitize-uri@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" + integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== dependencies: micromark-util-character "^1.0.0" micromark-util-encode "^1.0.0" @@ -6426,9 +6388,9 @@ micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== micromark@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" - integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== + version "3.0.10" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" + integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -6481,7 +6443,7 @@ mimic-fn@^2.1.0: min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= dependencies: dom-walk "^0.1.0" @@ -6513,14 +6475,14 @@ mri@^1.1.0: integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + version "1.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" + integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.2: version "2.1.2" @@ -6532,7 +6494,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns@^7.2.5: +multicast-dns@^7.2.4: version "7.2.5" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== @@ -6548,7 +6510,7 @@ nanoid@^3.3.4: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= negotiator@0.6.3: version "0.6.3" @@ -6583,7 +6545,12 @@ node-forge@^1: node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-releases@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" + integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== node-releases@^2.0.6: version "2.0.6" @@ -6609,42 +6576,39 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.12.2, object-inspect@^1.9.0: +object-inspect@^1.11.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-is@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.1.tgz#28a661153bad7e470e4b01479ef1cb91ce511191" + integrity sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA== object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.2, object.assign@^4.1.3, object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" object-keys "^1.1.1" object.entries@^1.1.5: @@ -6702,7 +6666,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" @@ -6754,7 +6718,7 @@ optionator@^0.9.1: ospath@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== + integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= p-limit@^2.2.0: version "2.3.0" @@ -6829,12 +6793,12 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@^7.0.0, parse5@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" - integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== +parse5@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" + integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== dependencies: - entities "^4.4.0" + entities "^4.3.0" parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" @@ -6857,14 +6821,14 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.7: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -6872,7 +6836,7 @@ path-parse@^1.0.7: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-type@^4.0.0: version "4.0.0" @@ -6882,12 +6846,12 @@ path-type@^4.0.0: pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picocolors@^1.0.0: version "1.0.0" @@ -6902,7 +6866,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pirates@^4.0.4: version "4.0.5" @@ -6958,9 +6922,9 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.7: - version "8.4.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" - integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -6979,7 +6943,7 @@ prelude-ls@^1.2.1: prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prettier@^2.7.1: version "2.7.1" @@ -7018,7 +6982,7 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.2.1: +pretty-format@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== @@ -7035,7 +6999,7 @@ process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^2.0.0: version "2.0.3" @@ -7075,12 +7039,12 @@ proxy-addr@~2.0.7: proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== + integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= psl@^1.1.28, psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pump@^3.0.0: version "3.0.0" @@ -7095,10 +7059,10 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== dependencies: side-channel "^1.0.4" @@ -7107,11 +7071,6 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -7216,14 +7175,6 @@ react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== -react-lottie@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/react-lottie/-/react-lottie-1.2.3.tgz#8544b96939e088658072eea5e12d912cdaa3acc1" - integrity sha512-qLCERxUr8M+4mm1LU0Ruxw5Y5Fn/OmYkGfnA+JDM/dZb3oKwVAJCjwnjkj9TMHtzR2U6sMEUD3ZZ1RaHagM7kA== - dependencies: - babel-runtime "^6.26.0" - lottie-web "^5.1.3" - react-markdown@^8.0.2: version "8.0.3" resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.3.tgz#e8aba0d2f5a1b2124d476ee1fff9448a2f57e4b3" @@ -7246,9 +7197,9 @@ react-markdown@^8.0.2: vfile "^5.0.0" react-modal@^3.14.4: - version "3.16.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" - integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== + version "3.15.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.15.1.tgz#950ce67bfef80971182dd0ed38f2d9b1a681288b" + integrity sha512-duB9bxOaYg7Zt6TMFldIFxQRtSP+Dg3F1ZX3FXxSUn+3tZZ/9JCgeAQKDg7rhZSAqopq8TFRw3yIbnx77gyFTw== dependencies: exenv "^1.2.0" prop-types "^15.7.2" @@ -7374,10 +7325,10 @@ redux@^4.0.0, redux@^4.1.2, redux@^4.2.0: dependencies: "@babel/runtime" "^7.9.2" -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" @@ -7386,15 +7337,10 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.9: - version "0.13.10" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" - integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.15.0: version "0.15.0" @@ -7403,7 +7349,7 @@ regenerator-transform@^0.15.0: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -7418,33 +7364,33 @@ regexpp@^3.1.0: integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.1.tgz#a69c26f324c1e962e9ffd0b88b055caba8089139" - integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ== + version "5.1.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" + integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsgen "^0.7.1" - regjsparser "^0.9.1" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -regjsgen@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" - integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= remark-parse@^10.0.0: version "10.0.1" @@ -7479,14 +7425,14 @@ renderkid@^3.0.0: request-progress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== + integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= dependencies: throttleit "^1.0.0" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-from-string@^2.0.2: version "2.0.2" @@ -7496,7 +7442,7 @@ require-from-string@^2.0.2: requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= reselect@4.1.6, reselect@^4.1.5: version "4.1.6" @@ -7526,22 +7472,21 @@ resolve.exports@^1.1.0: integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== resolve@^1.14.2, resolve@^1.20.0, resolve@^1.9.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.8.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.3: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" + is-core-module "^2.2.0" + path-parse "^1.0.6" restore-cursor@^3.1.0: version "3.1.0" @@ -7581,9 +7526,9 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" rxjs@^7.5.1: - version "7.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" - integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== + version "7.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== dependencies: tslib "^2.1.0" @@ -7604,24 +7549,15 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass-loader@^13.0.2: - version "13.1.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.1.0.tgz#e5b9acf14199a9bc6eaed7a0b8b23951c2cebf6f" - integrity sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ== + version "13.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.0.2.tgz#e81a909048e06520e9f2ff25113a801065adb3fe" + integrity sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q== dependencies: klona "^2.0.4" neo-async "^2.6.2" @@ -7688,7 +7624,7 @@ schema-utils@^4.0.0: select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^2.1.1: version "2.1.1" @@ -7703,9 +7639,9 @@ semver@5.6.0: integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" @@ -7743,7 +7679,7 @@ serialize-javascript@^6.0.0: serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" batch "0.6.1" @@ -7797,7 +7733,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.3, side-channel@^1.0.4: +side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== @@ -7897,9 +7833,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== space-separated-tokens@^2.0.0: version "2.0.1" @@ -7932,7 +7868,7 @@ spdy@^4.0.2: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.14.1: version "1.17.0" @@ -7961,10 +7897,10 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -stackframe@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" - integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== +stackframe@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1" + integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg== statuses@2.0.1: version "2.0.1" @@ -7974,7 +7910,7 @@ statuses@2.0.1: "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= string-length@^4.0.1: version "4.0.2" @@ -8007,7 +7943,7 @@ string.prototype.matchall@^4.0.7: regexp.prototype.flags "^1.4.1" side-channel "^1.0.4" -string.prototype.trimend@^1.0.5: +string.prototype.trimend@^1.0.4, string.prototype.trimend@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== @@ -8016,7 +7952,7 @@ string.prototype.trimend@^1.0.5: define-properties "^1.1.4" es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.5: +string.prototype.trimstart@^1.0.4, string.prototype.trimstart@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== @@ -8102,9 +8038,9 @@ supports-color@^8.0.0, supports-color@^8.1.1: has-flag "^4.0.0" supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -8138,9 +8074,9 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^6.0.9: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -8173,9 +8109,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.6: terser "^5.14.1" terser@^5.10.0, terser@^5.14.1: - version "5.15.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" - integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== + version "5.14.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" + integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -8194,17 +8130,17 @@ test-exclude@^6.0.0: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g== + integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= thunky@^1.0.2: version "1.1.0" @@ -8231,7 +8167,7 @@ tmpl@1.0.5: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-regex-range@^5.0.1: version "5.0.1" @@ -8250,15 +8186,14 @@ totalist@^1.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== -tough-cookie@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== dependencies: psl "^1.1.33" punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" + universalify "^0.1.2" tough-cookie@~2.5.0: version "2.5.0" @@ -8278,12 +8213,7 @@ tr46@^3.0.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -trim-lines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" - integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= trough@^2.0.0: version "2.1.0" @@ -8329,9 +8259,9 @@ tslib@^1.8.1: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3, tslib@^2.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tsutils@3.21.0, tsutils@^3.21.0: version "3.21.0" @@ -8343,14 +8273,14 @@ tsutils@3.21.0, tsutils@^3.21.0: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -8362,7 +8292,7 @@ type-check@^0.4.0, type-check@~0.4.0: type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" @@ -8404,7 +8334,7 @@ typescript@^4.8.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== -unbox-primitive@^1.0.2: +unbox-primitive@^1.0.1, unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== @@ -8433,9 +8363,9 @@ unicode-match-property-value-ecmascript@^2.0.0: integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== unified@^10.0.0: version "10.1.2" @@ -8481,27 +8411,44 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" - integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== +unist-util-visit-parents@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" + integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit-parents@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" + integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" + integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" + unist-util-visit-parents "^4.0.0" unist-util-visit@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" - integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" + integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^5.1.1" + unist-util-visit-parents "^5.0.0" -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== +universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: version "2.0.0" @@ -8511,7 +8458,7 @@ universalify@^2.0.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= untildify@^4.0.0: version "4.0.0" @@ -8519,9 +8466,9 @@ untildify@^4.0.0: integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + version "1.0.9" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" + integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -8542,33 +8489,25 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - use-sync-external-store@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz#3343c3fe7f7e404db70f8c687adf5c1652d34e82" + integrity sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^8.3.2: version "8.3.2" @@ -8576,9 +8515,9 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uvu@^0.5.0: - version "0.5.6" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" - integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" + integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== dependencies: dequal "^2.0.0" diff "^5.0.0" @@ -8607,12 +8546,12 @@ v8-to-istanbul@^9.0.1: vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -8627,9 +8566,9 @@ vfile-message@^3.0.0: unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.5" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.5.tgz#ec2e206b1414f561c85b7972bb1eeda8ab47ee61" - integrity sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ== + version "5.3.2" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" + integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -8639,7 +8578,14 @@ vfile@^5.0.0: void-elements@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== + integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" w3c-xmlserializer@^3.0.0: version "3.0.0" @@ -8680,7 +8626,7 @@ wbuf@^1.1.0, wbuf@^1.7.3: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= webidl-conversions@^7.0.0: version "7.0.0" @@ -8688,9 +8634,9 @@ webidl-conversions@^7.0.0: integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== webpack-bundle-analyzer@^4.6.1: - version "4.7.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz#33c1c485a7fcae8627c547b5c3328b46de733c66" - integrity sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg== + version "4.6.1" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.1.tgz#bee2ee05f4ba4ed430e4831a319126bb4ed9f5a6" + integrity sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw== dependencies: acorn "^8.0.4" acorn-walk "^8.0.0" @@ -8851,12 +8797,12 @@ whatwg-url@^11.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: +which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -8867,28 +8813,6 @@ which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -8927,25 +8851,25 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + version "4.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" + integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" ws@^7.3.1: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== -ws@^8.4.2, ws@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51" - integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw== +ws@^8.4.2, ws@^8.8.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== xml-name-validator@^4.0.0: version "4.0.0" @@ -8973,16 +8897,16 @@ yaml@^1.10.0: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^21.0.0, yargs-parser@^21.0.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + version "21.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== yargs@^17.3.1: - version "17.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" - integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== + version "17.5.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== dependencies: - cliui "^8.0.1" + cliui "^7.0.2" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" @@ -8993,7 +8917,7 @@ yargs@^17.3.1: yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" From 112758a45d123b30fd5094543145a2d1a227e8e5 Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Mon, 7 Nov 2022 16:59:15 +0100 Subject: [PATCH 13/28] [#3907] fixed input disable (#3913) * fixed input disable * disable fix * fixes --- .../Connectors/ConfigureConnector/index.tsx | 19 ++++++++++++++----- lib/typescript/translations/translations.ts | 9 +++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/frontend/control-center/src/pages/Connectors/ConfigureConnector/index.tsx b/frontend/control-center/src/pages/Connectors/ConfigureConnector/index.tsx index 0ef2e14e12..0437dc5fbc 100644 --- a/frontend/control-center/src/pages/Connectors/ConfigureConnector/index.tsx +++ b/frontend/control-center/src/pages/Connectors/ConfigureConnector/index.tsx @@ -35,16 +35,24 @@ type ConfigureConnectorProps = { const ConfigureConnector = (props: ConfigureConnectorProps) => { const {componentName, isConfigured, configValues, isEnabled, updateConnectorConfiguration, source} = props; const {t} = useTranslation(); - const [config, setConfig] = useState(configValues); + const [config, setConfig] = useState({}); const [isPending, setIsPending] = useState(false); const [isUpdateModalVisible, setIsUpdateModalVisible] = useState(false); const [configurationButtonDisabled, setConfigurationButtonDisabled] = useState(true); useEffect(() => { - Object.keys(config).length > 0 && + if (Object.keys(config).length > 0) { + let filledInputs = 0; Object.values(config).map(item => { - item !== 'string' && item !== '' ? setConfigurationButtonDisabled(false) : setConfigurationButtonDisabled(true); + if (item) filledInputs++; }); + + if (filledInputs === Object.keys(configValues).length) { + setConfigurationButtonDisabled(false); + } else { + setConfigurationButtonDisabled(true); + } + } }, [config]); const updateConfig = (event: React.FormEvent) => { @@ -95,7 +103,7 @@ const ConfigureConnector = (props: ConfigureConnectorProps) => { }; return ( -
+
{ onClick={e => updateConfig(e)} dataCy={cyConnectorAddButton} /> + {isUpdateModalVisible && ( { enableSubmitConfigData={enableSubmitConfigData} /> )} -
+ ); }; diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index e903217fb2..dcf9aa7872 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -986,6 +986,9 @@ const resources = { //IBM Watson Assistant ibmDescription: 'IBM Watson Assistant verwendet künstliche Intelligenz, die den Kunden versteht.', + //Amazon Lex V2 + amazonLexV2Description: 'Ein Webdienst zur Erstellung von Konversationsschnittstellen', + //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherdienst.', @@ -1500,6 +1503,9 @@ const resources = { //IBM Watson Assistant ibmDescription: `L'assistant IBM Watson utilise une intelligence artificielle qui comprend les clients.`, + //Amazon Lex V2 + amazonLexV2Description: 'Un service web pour construire une interface conversationnelle.', + //Amazon S3 amazons3Description: `Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets.`, @@ -2057,6 +2063,9 @@ const resources = { //IBM Watson Assistant ibmDescription: 'El Asistente Watson de IBM utiliza inteligencia artificial que entiende a los clientes.', + //Amazon Lex V2 + amazonLexV2Description: 'Un servicio web para construir una interfaz conversacional.', + //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos.', From d716c0f4821026e9d55a5e707a66dbe3482a3392 Mon Sep 17 00:00:00 2001 From: Juan Sebastian Pena Rodriguez Date: Tue, 8 Nov 2022 07:42:25 -0500 Subject: [PATCH 14/28] [3901 & 3900] Feature/3901 create kafka topic for components events (#3914) --- backend/components/installer/BUILD | 4 +- .../components/installer/CatalogHandler.java | 55 ++---- .../api/components/installer/GitHandler.java | 68 +++++++ .../components/installer/HelmJobHandler.java | 53 +++++- ... InstallationStatusComponentsHandler.java} | 36 ++-- .../installer/InstallerHandler.java | 8 +- .../InstallerHandlerCacheManager.java | 70 ++++++-- .../core/api/components/installer/Stores.java | 72 ++++++++ .../installer/model/ComponentStatus.java | 17 ++ .../src/main/resources/application.properties | 4 - .../installer/CatalogHandlerTest.java | 138 ++++++--------- ...stallationStatusComponentsHandlerTest.java | 166 ++++++++++++++++++ .../installer/InstallerHandlerTest.java | 17 +- .../src/test/resources/test.properties | 6 +- backend/model/component/BUILD | 16 ++ .../co/airy/model/component/Component.java | 69 ++++++++ .../model/component/MetadataRepository.java | 17 ++ .../provisioning/kafka-create-topics.yaml | 2 + .../schema/ops/OpsApplicationComponents.java | 10 ++ 19 files changed, 647 insertions(+), 181 deletions(-) create mode 100644 backend/components/installer/src/main/java/co/airy/core/api/components/installer/GitHandler.java rename backend/components/installer/src/main/java/co/airy/core/api/components/installer/{InstalledComponentsHandler.java => InstallationStatusComponentsHandler.java} (66%) create mode 100644 backend/components/installer/src/main/java/co/airy/core/api/components/installer/Stores.java create mode 100644 backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/ComponentStatus.java create mode 100644 backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallationStatusComponentsHandlerTest.java create mode 100644 backend/model/component/BUILD create mode 100644 backend/model/component/src/main/java/co/airy/model/component/Component.java create mode 100644 backend/model/component/src/main/java/co/airy/model/component/MetadataRepository.java create mode 100644 lib/java/kafka/schema/src/main/java/co/airy/kafka/schema/ops/OpsApplicationComponents.java diff --git a/backend/components/installer/BUILD b/backend/components/installer/BUILD index 7fff85ba03..13d275c4be 100644 --- a/backend/components/installer/BUILD +++ b/backend/components/installer/BUILD @@ -5,9 +5,11 @@ load("//tools/build:container_release.bzl", "container_release") app_deps = [ "//backend:base_app", + "//backend/model/component", "//backend/model/metadata", "//lib/java/spring/web:spring-web", - "//lib/java/spring/async:spring-async", + "//lib/java/spring/kafka/core:spring-kafka-core", + "//lib/java/kafka/schema:ops-application-components", "//:springboot_actuator", "//:k8s_client", "@maven//:org_eclipse_jgit_org_eclipse_jgit", diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/CatalogHandler.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/CatalogHandler.java index c4d164007a..0ede18aa34 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/CatalogHandler.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/CatalogHandler.java @@ -1,22 +1,14 @@ package co.airy.core.api.components.installer; -import java.io.File; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; -import java.util.stream.Stream; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import org.eclipse.jgit.api.Git; -import org.eclipse.jgit.api.errors.GitAPIException; import org.slf4j.Logger; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.event.ApplicationReadyEvent; -import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Service; import co.airy.core.api.components.installer.model.ComponentDetails; @@ -24,42 +16,19 @@ import co.airy.log.AiryLoggerFactory; @Service -public class CatalogHandler implements ApplicationListener, DisposableBean { +public class CatalogHandler { private static final Logger log = AiryLoggerFactory.getLogger(CatalogHandler.class); private final ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - private final File repoFolder; - private final String catalogUri; - private final InstalledComponentsHandler installedComponentsHandler; - private Git git; + private final InstallationStatusComponentsHandler installedComponentsHandler; + private final GitHandler gitHandler; CatalogHandler( - InstalledComponentsHandler installedComponentsHandler, - @Value("${catalog.uri}") String catalogUri, - @Value("${catalog.directory}") String catalogDir) { - this.catalogUri = catalogUri; - this.repoFolder = new File(catalogDir); + InstallationStatusComponentsHandler installedComponentsHandler, + GitHandler gitHandler) { this.installedComponentsHandler = installedComponentsHandler; - } - - @Override - public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) { - try { - git = Git.cloneRepository() - .setURI(catalogUri) - .setDirectory(repoFolder) - .call(); - } catch (GitAPIException e) { - throw new IllegalStateException("not able to clone catalog repository", e); - } - } - - @Override - public void destroy() { - if (repoFolder != null) { - repoFolder.delete(); - } + this.gitHandler = gitHandler; } public List listComponents() throws Exception { @@ -76,19 +45,15 @@ public ComponentDetails getComponentByName(String componentName) throws Exceptio private List getComponents(Function condition) throws Exception { - git.pull(); - final Map installedComponents = installedComponentsHandler.getInstalledComponentsCache(); + final Map installedComponents = installedComponentsHandler.getInstallationStatusComponentsCache(); - final List components = Stream.of(repoFolder.listFiles()) - .filter(f -> f.isDirectory() && !f.isHidden() && condition.apply(f.getName())) - .map(File::getAbsoluteFile) - //TODO: hanlde other description languages - .map(f -> new File(f, "description.yaml")) + final List components = gitHandler.getComponentsDescriptionFiles(condition) + .stream() .map(f -> { ComponentDetails config = null; try { config = mapper.readValue(f, ComponentDetails.class); - } catch(IOException e) { + } catch (IOException e) { log.error("unable to read config %s", e); } diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/GitHandler.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/GitHandler.java new file mode 100644 index 0000000000..b8465e072f --- /dev/null +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/GitHandler.java @@ -0,0 +1,68 @@ +package co.airy.core.api.components.installer; + +import java.io.File; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.errors.GitAPIException; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +@Component +public class GitHandler implements ApplicationListener, DisposableBean { + + private final String catalogUri; + private final File repoFolder; + private Git git; + + GitHandler( + @Value("${catalog.uri}") String catalogUri, + @Value("${catalog.directory}") String catalogDir) { + this.catalogUri = catalogUri; + this.repoFolder = new File(catalogDir); + } + + @Override + public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) { + try { + git = Git.cloneRepository() + .setURI(catalogUri) + .setDirectory(repoFolder) + .call(); + } catch (GitAPIException e) { + throw new IllegalStateException("not able to clone catalog repository", e); + } + } + + public List getComponentsDescriptionFiles(Function condition) { + git.pull(); + + return Stream.of(repoFolder.listFiles()) + .filter(f -> f.isDirectory() && !f.isHidden() && condition.apply(f.getName())) + .map(File::getAbsoluteFile) + .map(f -> new File(f, "description.yaml")) + .collect(Collectors.toList()); + } + + public List listAvailableCompnents() { + git.pull(); + + return Stream.of(repoFolder.listFiles()) + .filter(f -> f.isDirectory() && !f.isHidden()) + .map(File::getName) + .collect(Collectors.toList()); + } + + @Override + public void destroy() { + if (repoFolder != null) { + repoFolder.delete(); + } + } +} diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/HelmJobHandler.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/HelmJobHandler.java index 614984ec30..91d82916eb 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/HelmJobHandler.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/HelmJobHandler.java @@ -23,8 +23,12 @@ import org.springframework.stereotype.Component; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import co.airy.log.AiryLoggerFactory; +import co.airy.core.api.components.installer.model.InstallationStatus; +import co.airy.core.api.components.installer.model.ComponentStatus; @Component @EnableRetry @@ -40,7 +44,7 @@ public class HelmJobHandler { this.namespace = namespace; } - public V1Job launchHelmJob(String jobName, List cmd) throws Exception { + public V1Job launchHelmJob(String jobName, List cmd, Map labels) throws Exception { final V1Job runningJob = isJobAlreadyRunning(jobName); if (runningJob != null) { return runningJob; @@ -50,6 +54,7 @@ public V1Job launchHelmJob(String jobName, List cmd) throws Exception { .metadata(new V1ObjectMeta().name(jobName)) .spec(new V1JobSpec() .template(new V1PodTemplateSpec() + .metadata(new V1ObjectMeta().labels(labels)) .spec(new V1PodSpec() .addContainersItem(new V1Container() .name(jobName) @@ -124,6 +129,52 @@ public String waitForCompletedStatus(CoreV1Api api, V1Job job) throws NotComplet return podName; } + public List getInstallationComponentsStatus(CoreV1Api api) throws ApiException { + final ApiResponse listResponse = api.listNamespacedPodWithHttpInfo( + namespace, + null, + null, + null, + null, + "helm in (install, uninstall)", + null, + null, + null, + null, + null); + + return listResponse + .getData() + .getItems() + .stream() + .map(j -> ComponentStatus + .builder() + .podName(j.getMetadata().getName()) + .componentName(j.getMetadata().getLabels().get("component")) + .expectedInstallationStatus(j + .getMetadata() + .getLabels() + .get("helm") + .equals("install") ? InstallationStatus.installed : InstallationStatus.uninstalled) + .build()) + .map(cs -> { + String status = ""; + try { + final ApiResponse podStatus = api.readNamespacedPodStatusWithHttpInfo( + cs.getPodName(), + namespace, + null); + status = podStatus.getData().getStatus().getPhase(); + } catch (ApiException e) { + log.error(String.format("can't get status for pod %s error: %s", cs.getPodName(), e.getResponseBody())); + } + cs.setStatus(status); + return cs; + }) + .collect(Collectors.toList()); + } + + private V1Job isJobAlreadyRunning(String jobName) { try { final BatchV1Api api = new BatchV1Api(apiClient); diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstalledComponentsHandler.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallationStatusComponentsHandler.java similarity index 66% rename from backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstalledComponentsHandler.java rename to backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallationStatusComponentsHandler.java index bb7399497a..cb99c939f8 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstalledComponentsHandler.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallationStatusComponentsHandler.java @@ -20,7 +20,7 @@ import co.airy.core.api.components.installer.model.InstallationStatus; @Component -public class InstalledComponentsHandler { +public class InstallationStatusComponentsHandler { private static final Logger log = AiryLoggerFactory.getLogger(InstallerHandler.class); public static final String KEY = "cache-key"; @@ -28,33 +28,46 @@ public class InstalledComponentsHandler { private final ApiClient apiClient; private final String namespace; private final HelmJobHandler helmJobHandler; + private final Stores stores; + private final GitHandler gitHandler; - InstalledComponentsHandler( + InstallationStatusComponentsHandler( ApiClient apiClient, HelmJobHandler helmJobHandler, + Stores stores, + GitHandler gitHandler, @Value("${kubernetes.namespace}") String namespace) { this.apiClient = apiClient; this.namespace = namespace; this.helmJobHandler = helmJobHandler; + this.stores = stores; + this.gitHandler = gitHandler; } @Cacheable(key = "#root.target.KEY", value = "installedComponents") - public Map getInstalledComponentsCache() throws Exception { - return getInstalledComponents(); + public Map getInstallationStatusComponentsCache() throws Exception { + final Map installedComponents = getInstallationStatusComponents(); + + stores.storeFromCacheMap(installedComponents); + return installedComponents; } @CachePut(key = "#root.target.KEY", value = "installedComponents") - public Map putInstalledComponentsCache() throws Exception { - return getInstalledComponents(); + public Map putInstallationStatusComponentsCache() throws Exception { + final Map installedComponents = getInstallationStatusComponents(); + + stores.storeFromCacheMap(installedComponents); + return installedComponents; } @CachePut(key = "#root.target.KEY", value = "installedComponents") - public Map setInstalledComponentsCache(Map cache) throws Exception { + public Map setInstallationStatusComponentsCache(Map cache) throws Exception { + stores.storeFromCacheMap(cache); return cache; } - private Map getInstalledComponents() throws Exception { + private Map getInstallationStatusComponents() throws Exception { ArrayList cmd = new ArrayList<>(); cmd.add("sh"); @@ -63,7 +76,7 @@ private Map getInstalledComponents() throws Exception { "helm -n %s list | awk '{print $1}' | tail -n +2", namespace)); - final V1Job job = helmJobHandler.launchHelmJob("helm-installed", cmd); + final V1Job job = helmJobHandler.launchHelmJob("helm-installed", cmd, Map.of("helm", "installed")); final CoreV1Api api = new CoreV1Api(apiClient); final String podName = helmJobHandler.waitForCompletedStatus(api, job); @@ -89,6 +102,9 @@ private Map getInstalledComponents() throws Exception { throw new JobEmptyException(); } - return installedComponents; + return gitHandler.listAvailableCompnents() + .stream() + .map(name -> Map.entry(name, installedComponents.getOrDefault(name, InstallationStatus.uninstalled))) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } } diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandler.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandler.java index 9ab23ab643..09c77f194c 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandler.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandler.java @@ -70,9 +70,9 @@ public void installComponent(String componentName) throws Exception { final String jobName = String.format("helm-install-%s", componentName); - helmJobHandler.launchHelmJob(jobName, cmd); + helmJobHandler.launchHelmJob(jobName, cmd, Map.of("helm", "install", "component", componentName)); installerHandlerCacheManager.changeInstallationStatus(componentName, InstallationStatus.pending); - installerHandlerCacheManager.resetCacheAfterJob(jobName); + installerHandlerCacheManager.resetCacheAfterJob(); } public void uninstallComponent(String componentName) throws Exception { @@ -84,9 +84,9 @@ public void uninstallComponent(String componentName) throws Exception { final List cmd = getUninstallCommand(componentName); final String jobName = String.format("helm-uninstall-%s", componentName); - helmJobHandler.launchHelmJob(jobName, cmd); + helmJobHandler.launchHelmJob(jobName, cmd, Map.of("helm", "uninstall", "component", componentName)); installerHandlerCacheManager.changeInstallationStatus(componentName, InstallationStatus.pending); - installerHandlerCacheManager.resetCacheAfterJob(jobName); + installerHandlerCacheManager.resetCacheAfterJob(); } private Component getComponentFromName( diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandlerCacheManager.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandlerCacheManager.java index 8398c890e0..9c6181646f 100644 --- a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandlerCacheManager.java +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/InstallerHandlerCacheManager.java @@ -4,56 +4,52 @@ import io.kubernetes.client.openapi.apis.CoreV1Api; import io.kubernetes.client.openapi.models.V1Job; +import java.util.List; import java.util.Map; import org.slf4j.Logger; -import org.springframework.scheduling.annotation.Async; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import co.airy.log.AiryLoggerFactory; import co.airy.core.api.components.installer.model.InstallationStatus; +import co.airy.core.api.components.installer.model.ComponentStatus; @Component +@EnableScheduling public class InstallerHandlerCacheManager { private static final Logger log = AiryLoggerFactory.getLogger(InstallerHandlerCacheManager.class); private final HelmJobHandler helmJobHandler; private final ApiClient apiClient; - private final InstalledComponentsHandler installedComponentsHandler; + private final InstallationStatusComponentsHandler installedComponentsHandler; + private boolean resetCache = false; InstallerHandlerCacheManager( ApiClient apiClient, HelmJobHandler helmJobHandler, - InstalledComponentsHandler installedComponentsHandler) { + InstallationStatusComponentsHandler installedComponentsHandler) { this.apiClient = apiClient; this.helmJobHandler = helmJobHandler; this.installedComponentsHandler = installedComponentsHandler; } - @Async("threadPoolTaskExecutor") - public void resetCacheAfterJob(String jobName) { - try { - final V1Job job = helmJobHandler.getJobByName(jobName); - final CoreV1Api api = new CoreV1Api(apiClient); - helmJobHandler.waitForCompletedStatus(api, job); - - installedComponentsHandler.putInstalledComponentsCache(); - log.info("cache reset"); - } catch(Exception e) { - log.error("unable to reset cache", e); - } + public void resetCacheAfterJob() { + resetCache = true; } public void changeInstallationStatus(String componentName, String status) throws Exception { - Map cacheStore = installedComponentsHandler.getInstalledComponentsCache(); + Map cacheStore = installedComponentsHandler.getInstallationStatusComponentsCache(); cacheStore.put(componentName, status); - installedComponentsHandler.setInstalledComponentsCache(cacheStore); + installedComponentsHandler.setInstallationStatusComponentsCache(cacheStore); } public boolean isInstalled(String componentName) throws Exception { final String installationStatus = installedComponentsHandler - .getInstalledComponentsCache() + .getInstallationStatusComponentsCache() .getOrDefault(componentName, InstallationStatus.uninstalled); return installationStatus.equals(InstallationStatus.installed) @@ -62,10 +58,46 @@ public boolean isInstalled(String componentName) throws Exception { public boolean isUninstalled(String componentName) throws Exception { final String installationStatus = installedComponentsHandler - .getInstalledComponentsCache() + .getInstallationStatusComponentsCache() .getOrDefault(componentName, InstallationStatus.uninstalled); return installationStatus.equals(InstallationStatus.uninstalled) || installationStatus.equals(InstallationStatus.pending); } + + @Scheduled(fixedRateString = "${retry.maxDelay}") + private void resetCacheWorker() { + if (!resetCache) { + return; + } + + try { + final CoreV1Api api = new CoreV1Api(apiClient); + final List componentsStatus = helmJobHandler.getInstallationComponentsStatus(api); + + if (componentsStatus.size() == 0) { + resetCache = false; + installedComponentsHandler.putInstallationStatusComponentsCache(); + log.info("cache reset"); + return; + } + + componentsStatus + .stream() + .filter(cs -> cs.getStatus().equals("Succeeded")) + .forEach(cs -> { + try { + changeInstallationStatus( + cs.getComponentName(), + cs.getExpectedInstallationStatus()); + } catch (Exception e) { + log.error(String.format("unable to set expected status for %s, %s", + cs.getComponentName(), + e)); + } + }); + } catch (Exception e) { + log.error("unable to reset cache", e); + } + } } diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/Stores.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/Stores.java new file mode 100644 index 0000000000..90c26edf10 --- /dev/null +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/Stores.java @@ -0,0 +1,72 @@ +package co.airy.core.api.components.installer; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.slf4j.Logger; +import org.apache.avro.specific.SpecificRecordBase; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.springframework.boot.actuate.health.Health; +import org.springframework.boot.actuate.health.HealthIndicator; +import org.springframework.stereotype.Component; + +import co.airy.log.AiryLoggerFactory; +import co.airy.avro.communication.Metadata; +import co.airy.kafka.schema.ops.OpsApplicationComponents; +import lombok.Synchronized; + +import static co.airy.model.metadata.MetadataRepository.getId; + +@Component +public class Stores implements HealthIndicator { + + private static final Logger log = AiryLoggerFactory.getLogger(Stores.class); + + private final KafkaProducer producer; + private final String opsApplicationComponents = new OpsApplicationComponents().name(); + + private Map prevoiusCacheMap = new HashMap<>(); + + Stores(KafkaProducer producer) { + this.producer = producer; + } + + public void storeComponent(List metadataList) throws Exception { + for (Metadata metadata : metadataList) { + producer.send(new ProducerRecord<>( + opsApplicationComponents, + getId(metadata).toString(), metadata)).get(); + } + } + + @Synchronized + public void storeFromCacheMap(Map cacheStore) throws Exception { + final List cacheChanges = cacheStore + .entrySet() + .stream() + .filter(e -> !prevoiusCacheMap.getOrDefault(e.getKey(), "").equals(e.getValue())) + .map(e -> co.airy.model.component.Component + .builder() + .componentName(e.getKey()) + .installationStatus(e.getValue()) + .build()) + .map(c -> c.toMetadata()) + .flatMap(List::stream) + .collect(Collectors.toList()); + + storeComponent(cacheChanges); + + prevoiusCacheMap = cacheStore + .entrySet() + .stream() + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } + + @Override + public Health health() { + return Health.up().build(); + } +} diff --git a/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/ComponentStatus.java b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/ComponentStatus.java new file mode 100644 index 0000000000..1f378d1e43 --- /dev/null +++ b/backend/components/installer/src/main/java/co/airy/core/api/components/installer/model/ComponentStatus.java @@ -0,0 +1,17 @@ +package co.airy.core.api.components.installer.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ComponentStatus { + private String podName; + private String componentName; + private String expectedInstallationStatus; + private String status; +} diff --git a/backend/components/installer/src/main/resources/application.properties b/backend/components/installer/src/main/resources/application.properties index fe4b81e79b..3e46707e2b 100644 --- a/backend/components/installer/src/main/resources/application.properties +++ b/backend/components/installer/src/main/resources/application.properties @@ -3,9 +3,5 @@ kubernetes.config=${KUBERNETES_CONFIG:} catalog.uri=${CATALOG_URI} catalog.directory=${CATALOG_DIRECTORY:/repo} -thpool.core-pool-size=${REQUESTED_CPU} -thpool.max-pool-size=${LIMIT_CPU} -thpool.queue-capacity=${QUEUE_CAPACITY:0} - retry.maxAttempts=${RETRY_MAX_ATTEMPTS:200} retry.maxDelay=${RETRY_MAX_DELAY:500} diff --git a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/CatalogHandlerTest.java b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/CatalogHandlerTest.java index bd57cb794a..d6fe7ff5bd 100644 --- a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/CatalogHandlerTest.java +++ b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/CatalogHandlerTest.java @@ -15,33 +15,23 @@ import co.airy.kafka.test.junit.SharedKafkaTestResource; import co.airy.spring.core.AirySpringBootApplication; -import io.kubernetes.client.openapi.ApiClient; -import io.kubernetes.client.openapi.ApiResponse; -import io.kubernetes.client.openapi.apis.CoreV1Api; -import io.kubernetes.client.openapi.models.V1Job; -import io.kubernetes.client.openapi.models.V1ObjectMeta; - import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.io.TempDir; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.MockedConstruction; -import org.mockito.Mockito; + +import io.kubernetes.client.openapi.ApiClient; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.core.IsEqual.equalTo; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.doReturn; import java.io.File; -import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; @@ -70,11 +60,14 @@ public class CatalogHandlerTest { @MockBean private HelmJobHandler helmJobHandler; + @MockBean + private InstallationStatusComponentsHandler installationStatusComponentsHandler; + @Autowired private CatalogHandler catalogHandler; - @Captor - private ArgumentCaptor> cmd; + @Autowired + private GitHandler gitHandler; @BeforeAll static void beforeAll() throws Exception { @@ -89,88 +82,57 @@ static void afterAll() throws Exception { kafkaTestHelper.afterAll(); } - - @Test - public void canOnApplicationEvent(@TempDir File tempDir) throws Exception { - callOnApplicationEvent(tempDir); - } - @Test public void canGetComponents(@TempDir File tempDir) throws Exception { callOnApplicationEvent(tempDir); - final V1Job job = new V1Job() - .metadata(new V1ObjectMeta().name("helm-installed").namespace("test-namespace")); - - //TODO: Move all of this to InstalledComponentsHandlerTest class & mock here - doReturn(job).when(helmJobHandler).launchHelmJob(eq(job.getMetadata().getName()), cmd.capture()); - doReturn("helm-installed-test").when(helmJobHandler).waitForCompletedStatus(isA(CoreV1Api.class), eq(job)); - - final MockedConstruction.MockInitializer fn = (mock, context) -> { - final ApiResponse response = new ApiResponse<>( - 200, - null, - getInstalledComponents()); - - doReturn(response).when(mock).readNamespacedPodLogWithHttpInfo( - "helm-installed-test", - job.getMetadata().getNamespace(), - "", - null, - null, - null, - null, - null, - null, - null, - null); - }; - - try (MockedConstruction apiMock = Mockito.mockConstruction(CoreV1Api.class, fn)) { - List listComponents = catalogHandler.listComponents(); - - assertThat(cmd.getValue().size(), equalTo(3)); - assertThat(cmd.getValue().get(2), equalTo("helm -n test-namespace list | awk '{print $1}' | tail -n +2")); - - //NOTE: We are just going to get some of the components in the list, and check his validity - ComponentDetails enterpriseSalesforceContactsIngestion = listComponents - .stream() - .filter((c -> c.getName().equals("enterprise-salesforce-contacts-ingestion"))) - .findAny() - .orElse(null); - assertThat(enterpriseSalesforceContactsIngestion, is(notNullValue())); - assertThat(enterpriseSalesforceContactsIngestion.getInstallationStatus(), equalTo(InstallationStatus.installed)); - - ComponentDetails cognigyConnector = listComponents - .stream() - .filter((c -> c.getName().equals("cognigy-connector"))) - .findAny() - .orElse(null); - assertThat(cognigyConnector, is(notNullValue())); - assertThat(cognigyConnector.getInstallationStatus(), equalTo(InstallationStatus.uninstalled)); - } - + doReturn(getInstallationStatues()).when(installationStatusComponentsHandler).getInstallationStatusComponentsCache(); + + final List listComponents = catalogHandler.listComponents(); + + //NOTE: We are just going to get some of the components in the list, and check his validity + ComponentDetails enterpriseSalesforceContactsIngestion = listComponents + .stream() + .filter((c -> c.getName().equals("enterprise-salesforce-contacts-ingestion"))) + .findAny() + .orElse(null); + assertThat(enterpriseSalesforceContactsIngestion, is(notNullValue())); + assertThat(enterpriseSalesforceContactsIngestion.getInstallationStatus(), equalTo(InstallationStatus.installed)); + + ComponentDetails cognigyConnector = listComponents + .stream() + .filter((c -> c.getName().equals("cognigy-connector"))) + .findAny() + .orElse(null); + assertThat(cognigyConnector, is(notNullValue())); + assertThat(cognigyConnector.getInstallationStatus(), equalTo(InstallationStatus.uninstalled)); } private void callOnApplicationEvent(File tempDir) throws Exception { - ReflectionTestUtils.setField(catalogHandler, "repoFolder", tempDir); - catalogHandler.onApplicationEvent(event); + ReflectionTestUtils.setField(gitHandler, "repoFolder", tempDir); + gitHandler.onApplicationEvent(event); } - private String getInstalledComponents() { - final List installedComponents = List.of( - "api-contacts", - "enterprise-salesforce-contacts-ingestion", - "enterprise-zendesk-connector", - "integration-webhook", - "rasa-connector", - "sources-chatplugin", - "sources-facebook", - "sources-google", - "sources-twilio", - "sources-whatsapp"); - - return String.join("\n", installedComponents); + private Map getInstallationStatues() { + return Map.ofEntries( + Map.entry("sources-whatsapp", "installed"), + Map.entry("integration-webhook", "installed"), + Map.entry("sources-chatplugin", "installed"), + Map.entry("enterprise-dialogflow-connector", "uninstalled"), + Map.entry("enterprise-zendesk-connector", "installed"), + Map.entry("mobile", "uninstalled"), + Map.entry("amazon-s3-connector", "uninstalled"), + Map.entry("sources-facebook", "installed"), + Map.entry("sources-twilio", "installed"), + Map.entry("amelia-connector", "uninstalled"), + Map.entry("sources-viber", "uninstalled"), + Map.entry("amazon-lex-v2-connector", "uninstalled"), + Map.entry("ibm-watson-assistant-connector", "uninstalled"), + Map.entry("rasa-connector", "installed"), + Map.entry("sources-google", "installed"), + Map.entry("cognigy-connector", "uninstalled"), + Map.entry("enterprise-salesforce-contacts-ingestion", "installed")); } + } diff --git a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallationStatusComponentsHandlerTest.java b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallationStatusComponentsHandlerTest.java new file mode 100644 index 0000000000..fa720dbd9a --- /dev/null +++ b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallationStatusComponentsHandlerTest.java @@ -0,0 +1,166 @@ +package co.airy.core.api.components.installer; + +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.springframework.test.util.ReflectionTestUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.TestPropertySource; + +import co.airy.core.api.components.installer.model.ComponentDetails; +import co.airy.kafka.schema.application.ApplicationCommunicationMetadata; +import co.airy.kafka.test.KafkaTestHelper; +import co.airy.kafka.test.junit.SharedKafkaTestResource; +import co.airy.spring.core.AirySpringBootApplication; + +import io.kubernetes.client.openapi.ApiClient; +import io.kubernetes.client.openapi.ApiResponse; +import io.kubernetes.client.openapi.apis.CoreV1Api; +import io.kubernetes.client.openapi.models.V1Job; +import io.kubernetes.client.openapi.models.V1ObjectMeta; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.api.io.TempDir; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.MockedConstruction; +import org.mockito.Mockito; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.doReturn; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import co.airy.core.api.components.installer.model.InstallationStatus; + +@ContextConfiguration(loader = AnnotationConfigContextLoader.class) +@SpringBootTest(classes = AirySpringBootApplication.class) +@TestPropertySource(value = "classpath:test.properties") +@ExtendWith(SpringExtension.class) +public class InstallationStatusComponentsHandlerTest { + + @RegisterExtension + public static final SharedKafkaTestResource sharedKafkaTestResource = new SharedKafkaTestResource(); + private static KafkaTestHelper kafkaTestHelper; + + private static final ApplicationCommunicationMetadata applicationCommunicationMetadata = new ApplicationCommunicationMetadata(); + + @Mock + private ApplicationReadyEvent event; + + @MockBean + private ApiClient apiClient; + + @MockBean + private HelmJobHandler helmJobHandler; + + @Autowired + private GitHandler gitHandler; + + @Autowired + private InstallationStatusComponentsHandler installationStatusComponentsHandler; + + @Captor + private ArgumentCaptor> cmd; + + @Captor + private ArgumentCaptor> labels; + + @BeforeAll + static void beforeAll() throws Exception { + kafkaTestHelper = new KafkaTestHelper( + sharedKafkaTestResource, + applicationCommunicationMetadata); + kafkaTestHelper.beforeAll(); + } + + @AfterAll + static void afterAll() throws Exception { + kafkaTestHelper.afterAll(); + } + + @Test + public void canGetInstallationStatusComponentsCache(@TempDir File tempDir) throws Exception { + callOnApplicationEvent(tempDir); + + final V1Job job = new V1Job() + .metadata(new V1ObjectMeta().name("helm-installed").namespace("test-namespace")); + + doReturn(job).when(helmJobHandler).launchHelmJob( + eq(job.getMetadata().getName()), + cmd.capture(), + labels.capture()); + doReturn("helm-installed-test").when(helmJobHandler).waitForCompletedStatus(isA(CoreV1Api.class), eq(job)); + + final MockedConstruction.MockInitializer fn = (mock, context) -> { + final ApiResponse response = new ApiResponse<>( + 200, + null, + getInstalledComponents()); + + doReturn(response).when(mock).readNamespacedPodLogWithHttpInfo( + "helm-installed-test", + job.getMetadata().getNamespace(), + "", + null, + null, + null, + null, + null, + null, + null, + null); + }; + + try (MockedConstruction apiMock = Mockito.mockConstruction(CoreV1Api.class, fn)) { + final Map installationStatues = installationStatusComponentsHandler.getInstallationStatusComponentsCache(); + + assertThat(cmd.getValue().size(), equalTo(3)); + assertThat(cmd.getValue().get(2), equalTo("helm -n test-namespace list | awk '{print $1}' | tail -n +2")); + assertThat(labels.getValue().get("helm"), equalTo("installed")); + + assertThat(installationStatues.get("sources-facebook"), equalTo("installed")); + assertThat(installationStatues.get("enterprise-salesforce-contacts-ingestion"), equalTo("installed")); + assertThat(installationStatues.get("amazon-s3-connector"), equalTo("uninstalled")); + assertThat(installationStatues.get("mobile"), equalTo("uninstalled")); + } + } + + private void callOnApplicationEvent(File tempDir) throws Exception { + ReflectionTestUtils.setField(gitHandler, "repoFolder", tempDir); + gitHandler.onApplicationEvent(event); + } + + private String getInstalledComponents() { + final List installedComponents = List.of( + "api-contacts", + "enterprise-salesforce-contacts-ingestion", + "enterprise-zendesk-connector", + "integration-webhook", + "rasa-connector", + "sources-chatplugin", + "sources-facebook", + "sources-google", + "sources-twilio", + "sources-whatsapp"); + + return String.join("\n", installedComponents); + } +} diff --git a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallerHandlerTest.java b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallerHandlerTest.java index 42ab8cc428..25d2686d9d 100644 --- a/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallerHandlerTest.java +++ b/backend/components/installer/src/test/java/co/airy/core/api/components/installer/InstallerHandlerTest.java @@ -74,6 +74,9 @@ public class InstallerHandlerTest { @Captor private ArgumentCaptor> cmd; + @Captor + private ArgumentCaptor> labels; + @BeforeAll static void beforeAll() throws Exception { kafkaTestHelper = new KafkaTestHelper( @@ -97,7 +100,7 @@ public void canInstallComponent() throws Exception { doReturn(sourcesChatplugin).when(catalogHandler).getComponentByName("sources-chatplugin"); doReturn(false).when(installerHandlerCacheManager).isInstalled("sources-chatplugin"); doNothing().when(installerHandlerCacheManager).changeInstallationStatus("sources-chatplugin", InstallationStatus.pending); - doNothing().when(installerHandlerCacheManager).resetCacheAfterJob("helm-install-sources-chatplugin"); + doNothing().when(installerHandlerCacheManager).resetCacheAfterJob(); final MockedConstruction.MockInitializer fn = (mock, context) -> { final ApiResponse coreConfigResponse = new ApiResponse<>( @@ -112,7 +115,8 @@ public void canInstallComponent() throws Exception { doReturn(null).when(helmJobHandler).launchHelmJob( eq("helm-install-sources-chatplugin"), - cmd.capture()); + cmd.capture(), + labels.capture()); final ApiResponse repositoriesResponse = new ApiResponse<>( 200, @@ -130,6 +134,8 @@ public void canInstallComponent() throws Exception { assertThat(cmd.getValue().size(), equalTo(3)); assertThat(cmd.getValue().get(2), equalTo(getHelmInstallCmd())); + assertThat(labels.getValue().get("helm"), equalTo("install")); + assertThat(labels.getValue().get("component"), equalTo("sources-chatplugin")); } } @@ -137,16 +143,19 @@ public void canInstallComponent() throws Exception { public void canUninstallComponent() throws Exception { doReturn(null).when(helmJobHandler).launchHelmJob( eq("helm-uninstall-enterprise-dialogflow-connector"), - cmd.capture()); + cmd.capture(), + labels.capture()); doReturn(false).when(installerHandlerCacheManager).isUninstalled("enterprise-dialogflow-connector"); doNothing().when(installerHandlerCacheManager).changeInstallationStatus("enterprise-dialogflow-connector", InstallationStatus.pending); - doNothing().when(installerHandlerCacheManager).resetCacheAfterJob("helm-install-enterprise-dialogflow-connector"); + doNothing().when(installerHandlerCacheManager).resetCacheAfterJob(); installerHandler.uninstallComponent("enterprise-dialogflow-connector"); assertThat(cmd.getValue().size(), equalTo(3)); assertThat(cmd.getValue().get(2), equalTo("helm -n test-namespace uninstall enterprise-dialogflow-connector")); + assertThat(labels.getValue().get("helm"), equalTo("uninstall")); + assertThat(labels.getValue().get("component"), equalTo("enterprise-dialogflow-connector")); } private Map getCoreConfig() { diff --git a/backend/components/installer/src/test/resources/test.properties b/backend/components/installer/src/test/resources/test.properties index e8fc066f4f..3e2ce84e05 100644 --- a/backend/components/installer/src/test/resources/test.properties +++ b/backend/components/installer/src/test/resources/test.properties @@ -7,9 +7,5 @@ kubernetes.config=/path/to/kube/config catalog.uri=https://github.com/airyhq/catalog.git catalog.directory=/path/to/catalog/directory -thpool.core-pool-size=1 -thpool.max-pool-size=1 -thpool.queue-capacity=1 - retry.maxAttempts=1 -retry.maxDelay=1 +retry.maxDelay=10 diff --git a/backend/model/component/BUILD b/backend/model/component/BUILD new file mode 100644 index 0000000000..5c32d3e49a --- /dev/null +++ b/backend/model/component/BUILD @@ -0,0 +1,16 @@ +load("@com_github_airyhq_bazel_tools//lint:buildifier.bzl", "check_pkg") +load("//tools/build:java_library.bzl", "custom_java_library") + +custom_java_library( + name = "component", + srcs = glob(["src/main/java/co/airy/model/component/**/*.java"]), + visibility = ["//visibility:public"], + deps = [ + "//:jackson", + "//:lombok", + "//backend/model/metadata", + "//lib/java/log", + ], +) + +check_pkg(name = "buildifier") diff --git a/backend/model/component/src/main/java/co/airy/model/component/Component.java b/backend/model/component/src/main/java/co/airy/model/component/Component.java new file mode 100644 index 0000000000..20a877d940 --- /dev/null +++ b/backend/model/component/src/main/java/co/airy/model/component/Component.java @@ -0,0 +1,69 @@ +package co.airy.model.component; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Collection; +import java.util.Optional; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import org.slf4j.Logger; + +import co.airy.avro.communication.Metadata; +import co.airy.log.AiryLoggerFactory; +import co.airy.model.metadata.dto.MetadataMap; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import static co.airy.model.component.Component.MetadataKeys.INSTALLATION_STATUS; +import static co.airy.model.component.MetadataRepository.newComponentMetadata; +import static co.airy.model.metadata.MetadataRepository.getSubject; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class Component implements Serializable { + private static final Logger log = AiryLoggerFactory.getLogger(Component.class); + + private String componentName; + private String installationStatus; + + public static class MetadataKeys { + public static String INSTALLATION_STATUS = "installationStatus"; + } + + @JsonIgnore + public List toMetadata() { + List metadata = new ArrayList<>(); + if (installationStatus != null) { + metadata.add(newComponentMetadata(componentName, INSTALLATION_STATUS, installationStatus)); + } + + return metadata; + } + + public static Component fromMetadataMap(MetadataMap map) { + if (map == null) { + return null; + } + + final Collection values = map.values(); + + final Optional anyRecord = values.stream().findAny(); + if (anyRecord.isEmpty()) { + return null; + } + + final String componentName = getSubject(anyRecord.get()).getIdentifier(); + + return Component.builder() + .componentName(componentName) + .installationStatus(map.getMetadataValue(INSTALLATION_STATUS)) + .build(); + } +} diff --git a/backend/model/component/src/main/java/co/airy/model/component/MetadataRepository.java b/backend/model/component/src/main/java/co/airy/model/component/MetadataRepository.java new file mode 100644 index 0000000000..9a3de9e2b9 --- /dev/null +++ b/backend/model/component/src/main/java/co/airy/model/component/MetadataRepository.java @@ -0,0 +1,17 @@ +package co.airy.model.component; + +import co.airy.avro.communication.Metadata; +import co.airy.model.metadata.Subject; + +import java.time.Instant; + +public class MetadataRepository { + public static Metadata newComponentMetadata(String componentName, String key, String value) { + return Metadata.newBuilder() + .setSubject(new Subject("component", componentName).toString()) + .setKey(key) + .setValue(value) + .setTimestamp(Instant.now().toEpochMilli()) + .build(); + } +} diff --git a/infrastructure/helm-chart/templates/provisioning/kafka-create-topics.yaml b/infrastructure/helm-chart/templates/provisioning/kafka-create-topics.yaml index e965a02db9..29b06636b9 100644 --- a/infrastructure/helm-chart/templates/provisioning/kafka-create-topics.yaml +++ b/infrastructure/helm-chart/templates/provisioning/kafka-create-topics.yaml @@ -69,6 +69,8 @@ data: kafka-topics.sh --create --if-not-exists "${CONNECTION_OPTS[@]}" --replication-factor "${REPLICAS}" --partitions "${PARTITIONS}" --topic "${AIRY_CORE_NAMESPACE}application.communication.webhooks-v0.29.0" --config cleanup.policy=compact min.compaction.lag.ms=86400000 segment.bytes=10485760 + kafka-topics.sh --create --if-not-exists "${CONNECTION_OPTS[@]}" --replication-factor "${REPLICAS}" --partitions "${PARTITIONS}" --topic "${AIRY_CORE_NAMESPACE}ops.application.components" + kafka-topics.sh --create --if-not-exists "${CONNECTION_OPTS[@]}" --replication-factor "${REPLICAS}" --partitions "${PARTITIONS}" --topic "${AIRY_CORE_NAMESPACE}ops.application.logs" kafka-topics.sh --create --if-not-exists "${CONNECTION_OPTS[@]}" --replication-factor "${REPLICAS}" --partitions "${PARTITIONS}" --topic "${AIRY_CORE_NAMESPACE}source.facebook.events" diff --git a/lib/java/kafka/schema/src/main/java/co/airy/kafka/schema/ops/OpsApplicationComponents.java b/lib/java/kafka/schema/src/main/java/co/airy/kafka/schema/ops/OpsApplicationComponents.java new file mode 100644 index 0000000000..35819dce1d --- /dev/null +++ b/lib/java/kafka/schema/src/main/java/co/airy/kafka/schema/ops/OpsApplicationComponents.java @@ -0,0 +1,10 @@ +package co.airy.kafka.schema.ops; + +import co.airy.kafka.schema.OpsApplication; + +public class OpsApplicationComponents extends OpsApplication { + @Override + public String dataset() { + return "components"; + } +} From 8d9552127efacedbe52d5f17c1d5e25f40dac897 Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Tue, 8 Nov 2022 16:25:20 +0100 Subject: [PATCH 15/28] [#3905] rasa docs update (#3912) * rasa docs * docs update * save fixes * docs fix * docs fix * docs update * docs fix * sidebar rearrange * fixed broken links * fixed broken links * broken links * sidebar fix --- docs/docs/api/endpoints/chatplugin.md | 2 +- docs/docs/api/endpoints/messages.md | 2 +- docs/docs/concepts/architecture.md | 2 +- .../conversational-ai}/cognigy-ai.md | 26 ++-- .../ibm-watson-assistant.md | 12 +- .../installation-options.mdx | 0 .../conversational-ai/introduction.md | 36 +++++ .../docs/connectors/conversational-ai/rasa.md | 145 ++++++++++++++++++ docs/docs/connectors/overview.md | 26 ++++ .../sources/applyVariables-note.mdx | 0 .../sources/chatplugin/customization.md | 2 +- .../sources/chatplugin/demo.md | 0 .../sources/chatplugin/installation.md | 0 .../sources/chatplugin/messageExamples.md | 0 .../sources/chatplugin/overview.md | 2 +- .../sources/chatplugin/quickstart.md | 2 +- .../sources/connectChannelOptions.mdx | 0 .../sources/connectFormOptional.mdx | 0 .../sources/debugging-twilio.mdx | 0 .../docs/{ => connectors}/sources/facebook.md | 2 +- docs/docs/{ => connectors}/sources/google.md | 2 +- .../sources/inbox-messages.mdx | 0 .../{ => connectors}/sources/instagram.md | 2 +- .../{ => connectors}/sources/introduction.md | 16 +- .../{ => connectors}/sources/sms-twilio.md | 2 +- .../sources/twilio-config.mdx | 0 .../sources/twilio-send-message.mdx | 0 .../sources/twilio-sources.mdx | 0 docs/docs/{ => connectors}/sources/viber.md | 2 +- .../sources/whatsapp-cloud.md | 2 +- .../sources/whatsapp-twilio.md | 2 +- docs/docs/getting-started/components.md | 14 +- docs/docs/getting-started/installation/aws.md | 2 +- .../getting-started/installation/minikube.md | 2 +- docs/docs/getting-started/quickstart.md | 4 +- docs/docs/integrations/rasa-assistant.md | 105 ------------- .../integrations/rasa-suggested-replies.md | 100 ------------ docs/docs/ui/control-center/catalog.md | 14 +- docs/docs/ui/control-center/connectors.md | 6 +- docs/docs/ui/inbox/introduction.md | 2 +- docs/docs/ui/inbox/messenger.md | 4 +- docs/docs/ui/inbox/suggestedReplies.md | 11 -- docs/docs/ui/overview.md | 2 +- docs/docs/ui/testing/integration-testing.md | 6 +- docs/sidebars.js | 58 +++---- docs/static/icons/robot.svg | 1 + .../cognigy/flow.png | Bin .../cognigy/messagingExample.png | Bin .../ibmWatsonAssistant/messagingExample.png | Bin .../rasa/messagingExample.png | Bin 0 -> 43907 bytes docs/static/img/integrations/rasa/success.jpg | Bin 420378 -> 0 bytes .../integrations/rasa/suggested-replies.gif | Bin 250680 -> 0 bytes .../img/integrations/rasa/webhook_success.jpg | Bin 288318 -> 0 bytes lib/typescript/translations/translations.ts | 16 +- 54 files changed, 308 insertions(+), 326 deletions(-) rename docs/docs/{integrations => connectors/conversational-ai}/cognigy-ai.md (77%) rename docs/docs/{integrations => connectors/conversational-ai}/ibm-watson-assistant.md (77%) rename docs/docs/{integrations => connectors/conversational-ai}/installation-options.mdx (100%) create mode 100644 docs/docs/connectors/conversational-ai/introduction.md create mode 100644 docs/docs/connectors/conversational-ai/rasa.md create mode 100644 docs/docs/connectors/overview.md rename docs/docs/{ => connectors}/sources/applyVariables-note.mdx (100%) rename docs/docs/{ => connectors}/sources/chatplugin/customization.md (98%) rename docs/docs/{ => connectors}/sources/chatplugin/demo.md (100%) rename docs/docs/{ => connectors}/sources/chatplugin/installation.md (100%) rename docs/docs/{ => connectors}/sources/chatplugin/messageExamples.md (100%) rename docs/docs/{ => connectors}/sources/chatplugin/overview.md (98%) rename docs/docs/{ => connectors}/sources/chatplugin/quickstart.md (98%) rename docs/docs/{ => connectors}/sources/connectChannelOptions.mdx (100%) rename docs/docs/{ => connectors}/sources/connectFormOptional.mdx (100%) rename docs/docs/{ => connectors}/sources/debugging-twilio.mdx (100%) rename docs/docs/{ => connectors}/sources/facebook.md (99%) rename docs/docs/{ => connectors}/sources/google.md (98%) rename docs/docs/{ => connectors}/sources/inbox-messages.mdx (100%) rename docs/docs/{ => connectors}/sources/instagram.md (99%) rename docs/docs/{ => connectors}/sources/introduction.md (93%) rename docs/docs/{ => connectors}/sources/sms-twilio.md (97%) rename docs/docs/{ => connectors}/sources/twilio-config.mdx (100%) rename docs/docs/{ => connectors}/sources/twilio-send-message.mdx (100%) rename docs/docs/{ => connectors}/sources/twilio-sources.mdx (100%) rename docs/docs/{ => connectors}/sources/viber.md (98%) rename docs/docs/{ => connectors}/sources/whatsapp-cloud.md (98%) rename docs/docs/{ => connectors}/sources/whatsapp-twilio.md (97%) delete mode 100644 docs/docs/integrations/rasa-assistant.md delete mode 100644 docs/docs/integrations/rasa-suggested-replies.md create mode 100644 docs/static/icons/robot.svg rename docs/static/img/{integrations => conversational-ai-connectors}/cognigy/flow.png (100%) rename docs/static/img/{integrations => conversational-ai-connectors}/cognigy/messagingExample.png (100%) rename docs/static/img/{integrations => conversational-ai-connectors}/ibmWatsonAssistant/messagingExample.png (100%) create mode 100644 docs/static/img/conversational-ai-connectors/rasa/messagingExample.png delete mode 100644 docs/static/img/integrations/rasa/success.jpg delete mode 100644 docs/static/img/integrations/rasa/suggested-replies.gif delete mode 100644 docs/static/img/integrations/rasa/webhook_success.jpg diff --git a/docs/docs/api/endpoints/chatplugin.md b/docs/docs/api/endpoints/chatplugin.md index 374be57de7..70e8f39fc4 100644 --- a/docs/docs/api/endpoints/chatplugin.md +++ b/docs/docs/api/endpoints/chatplugin.md @@ -3,7 +3,7 @@ title: Chat Plugin sidebar_label: Chat Plugin --- -Refer to our [Chat Plugin overview](sources/chatplugin/overview.md) document for +Refer to our [Chat Plugin overview](connectors/sources/chatplugin/overview.md) document for more information. The HTTP API adheres to standards laid out in the [core diff --git a/docs/docs/api/endpoints/messages.md b/docs/docs/api/endpoints/messages.md index 246bd4a451..e5866712d2 100644 --- a/docs/docs/api/endpoints/messages.md +++ b/docs/docs/api/endpoints/messages.md @@ -65,7 +65,7 @@ are sorted from oldest to latest. Sends a message to a conversation and returns a payload. Whatever is put on the `message` field will be forwarded "as-is" to the source's message endpoint. Therefore, -the payload will look differently for each source. Refer to each [source's documentation](/sources/introduction) +the payload will look differently for each source. Refer to each [source's documentation](/connectors/sources/introduction) to see learn how to send text, media, and many more message types. **Sample request** diff --git a/docs/docs/concepts/architecture.md b/docs/docs/concepts/architecture.md index 7e6aebcef2..4f6cf4fdba 100644 --- a/docs/docs/concepts/architecture.md +++ b/docs/docs/concepts/architecture.md @@ -16,7 +16,7 @@ The `backend` system is a streaming platform. Its role is to: - Manage authentication and authorization features. The `frontend` system contains Inbox and Control Center web applications and the JavaScript integration -of the [Chat Plugin](sources/chatplugin/overview.md). +of the [Chat Plugin](connectors/sources/chatplugin/overview.md). All of these functionalities are packaged in entities called `Airy Components`. Components are part of a `repository`. By default, the `airy-core` repository is added to an `Airy Core` installation. The conversational platform can further be extended with additional repositories and third party components. diff --git a/docs/docs/integrations/cognigy-ai.md b/docs/docs/connectors/conversational-ai/cognigy-ai.md similarity index 77% rename from docs/docs/integrations/cognigy-ai.md rename to docs/docs/connectors/conversational-ai/cognigy-ai.md index 91234e593a..da48f93396 100644 --- a/docs/docs/integrations/cognigy-ai.md +++ b/docs/docs/connectors/conversational-ai/cognigy-ai.md @@ -15,14 +15,14 @@ Cognigy.AI was developed in order to overcome most of the challenges in building -Integrating [Cognigy.AI](https://docs.cognigy.com/ai/platform-overview/) with your Airy Core instance enables you to leverage its conversational AI capabilities on all your instance's channels. +Integrating [Cognigy.AI](https://docs.cognigy.com/ai/platform-overview/) with your Airy Core instance enables you to leverage its conversational AI capabilities on all your instance's channels. When [Cognigy.AI](https://docs.cognigy.com/ai/platform-overview/) is integrated with an Airy Core instance, Airy Core will forward the messages to the Cognigy.AI agent's installation, which will respond to the Airy Core API according to its conversation flow. -When [Cognigy.AI](https://docs.cognigy.com/ai/platform-overview/) is integrated with an Airy Core instance, Airy Core will forward the messages to the Cognigy.AI agent's installation, which will respond to the Airy Core API according to its conversation flow. +Airy Core includes an internal Cognigy.AI [connector](/concepts/architecture#components) that you can install on your Airy Core instance: this page will guide through the installation and configuration process. :::tip What you will learn - How to configure your Cognigy.AI agent -- How to connect Cognigy.AI to your Airy Core instance +- How to connect Cognigy.AI to your Airy Core instance through Airy Core's Cognigy.AI connector ::: @@ -52,17 +52,15 @@ step-by-step instructions. Here is a screenshot of a simple Cognigy.AI Flow: -Cognigy.AI Flow +
Cognigy.AI Flow
## Step 3: Create a Cognigy.AI REST Endpoint -Endpoints are the connector between your user interface and the Cognigy Agent. - The REST Endpoint lets you connect to a Cognigy Flow directly through a REST interface. -- From the [Cognigy.AI documentation](https://docs.cognigy.com/ai/endpoints/overview/) +- From the [Cognigy.AI documentation](https://docs.cognigy.com/ai/platform-overview/) @@ -70,7 +68,7 @@ On your agent dashboard on the Cognigy.AI platform, select `Endpoints` from the Type a name for this Endpoint, select the Flow you previously created in the `Flow` dropdown, select `REST` from the `Endpoint Type` list (scroll down to find the REST type) and click on the `Save` button to save this configuration. -Note down your REST Endpoint URL, you will need it later on for the [step 6](/integrations/cognigy-ai#step-6-option-1-install-and-configure-cognigyai-to-your-airy-instance-via-api-request). +Note down your REST Endpoint URL, you will need it later on for the [step 6](#step-6-option-1-install-and-configure-cognigyai-to-your-airy-instance-via-api-request). ## Step 4: Create an API key @@ -116,9 +114,9 @@ The request body should be: } ``` -Once the installation is successful (indicated by a 201 response status code), you can configure the component with the [Components Update](/api/endpoints/components#update) endpoint. +Once the installation is successful (indicated by a 200 response status code), you can configure the component with the [Components Update](/api/endpoints/components#update) endpoint. -Use the REST Endpoint URL and User ID you got in the previous steps ([step 3](/integrations/cognigy-ai#step-3-create-a-cognigyai-rest-endpoint) and [step 5](/integrations/cognigy-ai#step-5-find-your-cognigyai-user-id)) to compose the request body: +Use the REST Endpoint URL and User ID you got in the previous steps ([step 3](#step-3-create-a-cognigyai-rest-endpoint) and [step 5](#step-5-find-your-cognigyai-user-id)) to compose the request body: ```json { @@ -153,7 +151,7 @@ On the [Airy Control Center UI](/ui/control-center/introduction), navigate to th Once the installation is completed, navigate to the [Control Center's Connectors page](/ui/control-center/connectors) and select Cognigy.AI: this will open the connector's configuration page. -Paste the `REST Endpoint URL` and `User ID` you got in the previous steps ([step 3](/integrations/cognigy-ai#step-3-create-a-cognigyai-rest-endpoint) and [step 5](/integrations/cognigy-ai#step-5-find-your-cognigyai-user-id)) +Paste the `REST Endpoint URL` and `User ID` you got in the previous steps ([step 3](#step-3-create-a-cognigyai-rest-endpoint) and [step 5](#step-5-find-your-cognigyai-user-id)) in the respective fields and save this configuration. Cognigy.AI is now installed and configured. @@ -161,8 +159,8 @@ Cognigy.AI is now installed and configured. ## Step 7: Cognigy.AI's connection with Airy To test the connection, write a message to one of your channels: Airy Core will -forward it to your Cognigy.AI installation, which will respond to the Airy Core API according to its conversation [Flow](/integrations/cognigy-ai#step-2-create-a-cognigyai-flow) . +forward it to your Cognigy.AI installation, which will respond to the Airy Core API according to its conversation [Flow](#step-2-create-a-cognigyai-flow). -The screenshot below was taken on a [Airy Live Chat Plugin](/sources/chatplugin/overview) channel from an Airy instance connected to Cognigy.AI. It shows an example where a message sent to Airy Core is automatically responded to according to a [Cognigy.AI Flow](/integrations/cognigy-ai#step-2-create-a-cognigyai-flow) where the Live Agent responds "Hi from Cognigy! 👋" to a contact's first message. +The screenshot below was taken on a [Airy Live Chat Plugin](/connectors/sources/chatplugin/overview) channel from an instance connected to Cognigy.AI through Airy Core's Cognigy.AI [connector](/concepts/architecture#components). It shows an example where a message sent to Airy Core is automatically responded to according to a [Cognigy.AI Flow](#step-2-create-a-cognigyai-flow) where the Live Agent responds "Hi from Cognigy! 👋" to a contact's first message. -
Cognigy.AI Airy connection
+
Cognigy.AI Airy connection
diff --git a/docs/docs/integrations/ibm-watson-assistant.md b/docs/docs/connectors/conversational-ai/ibm-watson-assistant.md similarity index 77% rename from docs/docs/integrations/ibm-watson-assistant.md rename to docs/docs/connectors/conversational-ai/ibm-watson-assistant.md index b4d1a28f6b..e6a16caadb 100644 --- a/docs/docs/integrations/ibm-watson-assistant.md +++ b/docs/docs/connectors/conversational-ai/ibm-watson-assistant.md @@ -15,14 +15,14 @@ The IBM Watson™ Assistant service combines machine learning, natural language -Integrating [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) with your Airy Core instance enables you to leverage its conversational AI capabilities on all your instance's [channels](getting-started/glossary.md#channel). +Integrating [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) with your Airy Core instance enables you to leverage its conversational AI capabilities on all your instance's [channels](getting-started/glossary.md#channel). When [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) is integrated with an Airy Core instance, Airy Core will forward the messages to the [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) installation, which will respond to the Airy Core API according to its conversation flow. -When [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) is integrated with an Airy Core instance, Airy Core will forward the messages to the [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) installation, which will respond to the Airy Core API according to its conversation flow. +Airy Core includes an internal IBM Watson Assistant [connector](/concepts/architecture#components) that you can install on your Airy Core instance: this page will guide through the installation and configuration process. :::tip What you will learn - Finding your credentials on your IBM Cloud dashboard -- How to connect your IBM Watson Assistant to Airy Core +- How to connect your IBM Watson Assistant's installation to your Airy Core instance through Airy Core's IBM Watson Assistant connector ::: @@ -65,7 +65,7 @@ The request body should be: } ``` -Once the installation is successful (indicated by a 201 response status code), you can configure the component using the [Components Update](/api/endpoints/components#update) endpoint. +Once the installation is successful (indicated by a 200 response status code), you can configure the component using the [Components Update](/api/endpoints/components#update) endpoint. Use the `URL`, `apiKey`, and `Assistant ID` you noted in the previous step to compose the request body: @@ -112,6 +112,6 @@ The [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assista To test the connection, write a message to one of your channels: Airy Core will forward it to your [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) installation, which will respond to the Airy Core API according to its conversation flow. -The screenshot below displays an [Airy Live Chat Plugin](/sources/chatplugin/overview) from an Airy instance connected to the [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant). It shows an example where a message sent to Airy Core is responded to by an [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) installation. In this specific installation, the assistant was programmed to respond "Hello from IBM Watson Assistant!" to a contact's message. +The screenshot below displays an [Airy Live Chat Plugin](/connectors/sources/chatplugin/overview) from an instance connected to the [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) through Airy Core's IBM Watson Assistant [connector](/concepts/architecture#components). It shows an example where a message sent to Airy Core is responded to by an [IBM Watson Assistant](https://cloud.ibm.com/catalog/services/watson-assistant) installation where the assistant was programmed to respond "Hello from IBM Watson Assistant". -
Airy connection with IBM Watson Assistant
+
Airy connection with IBM Watson Assistant
diff --git a/docs/docs/integrations/installation-options.mdx b/docs/docs/connectors/conversational-ai/installation-options.mdx similarity index 100% rename from docs/docs/integrations/installation-options.mdx rename to docs/docs/connectors/conversational-ai/installation-options.mdx diff --git a/docs/docs/connectors/conversational-ai/introduction.md b/docs/docs/connectors/conversational-ai/introduction.md new file mode 100644 index 0000000000..df111a622c --- /dev/null +++ b/docs/docs/connectors/conversational-ai/introduction.md @@ -0,0 +1,36 @@ +--- +title: Introduction +sidebar_label: Introduction +--- + +import RobotSVG from "@site/static/icons/robot.svg"; +import ButtonBoxList from "@site/src/components/ButtonBoxList"; +import ButtonBox from "@site/src/components/ButtonBox"; + +Level up your channels' communication with Airy Core's conversational AI [connectors](/concepts/architecture#components). + +Airy Core features conversational AI [connectors](/concepts/architecture#components) that you can easily install and configure on your instance. + + + } + iconInvertible={true} + title='Cognigy AI' + description='Conversational AI in a user-friendly interface' + link='connectors/conversational-ai/cognigy-ai' + /> + } + title='IBM Watson Assistant' + iconInvertible={true} + description="An AI assistant that builds natural conversation flows" + link='connectors/conversational-ai/ibm-watson-assistant' + /> + } + title='Rasa Open Source' + iconInvertible={true} + description="The most popular open source framework for building AI assistants" + link='connectors/conversational-ai/rasa' + /> + diff --git a/docs/docs/connectors/conversational-ai/rasa.md b/docs/docs/connectors/conversational-ai/rasa.md new file mode 100644 index 0000000000..bbf3cc3e20 --- /dev/null +++ b/docs/docs/connectors/conversational-ai/rasa.md @@ -0,0 +1,145 @@ +--- +title: Rasa Open Source +sidebar_label: Rasa Open Source +--- + +import useBaseUrl from '@docusaurus/useBaseUrl'; +import TLDR from "@site/src/components/TLDR"; +import SuccessBox from "@site/src/components/SuccessBox"; + + + +With over 25 million downloads, Rasa Open Source is the most popular open source framework for building chat and voice-based AI assistants. + +- From the [Rasa documentation](https://rasa.com/docs/rasa/) + + + +Integrating [Rasa Open Source](https://rasa.com/docs/rasa/) with your Airy Core instance enables you to leverage its conversational AI capabilities on all your instance's [channels](getting-started/glossary.md#channel). When [Rasa Open Source](https://rasa.com/docs/rasa/) is integrated with an Airy Core instance, Airy Core will forward the messages to the [Rasa Open Source](https://rasa.com/docs/rasa/) installation, which will respond to the Airy Core API according to its conversation flow. + +Airy Core includes an internal Rasa [connector](/concepts/architecture#components) that you can install and configure on your Airy Core instance. This page will guide through the installation and configuration process. + +:::note + +This guide outlines the steps to connect your Airy Core instance to Rasa Open Source through Airy Core's Rasa connector. + +Check out our [blog post](https://blog.airy.co/how-to-level-up-customer-support-with-airy-rasa-x) if you are interested in building an integration from scratch between your Airy Core instance and Rasa X. + +::: + +:::tip What you will learn in this guide + +- Installing Rasa Open Source and creating a Rasa project +- Setting up your credentials on your Rasa project +- How to connect Rasa to your Airy Core instance through Airy Core's Rasa connector + +::: + +:::note Prerequisites + +- A running Airy Core installation (refer to the [Get + Started section](getting-started/installation/introduction.md)) + +::: + +## Step 1: Install Rasa Open Source + +The first step is to install [Rasa Open Source](https://rasa.com/docs/rasa/): follow the instructions from the [Rasa documentation](https://rasa.com/docs/rasa/installation/installing-rasa-open-source). Make sure your [environment is properly set up](https://rasa.com/docs/rasa/installation/environment-set-up) if the installation fails. + +Once [Rasa Open Source](https://rasa.com/docs/rasa/) is successfully installed, [create a Rasa project](https://rasa.com/docs/rasa/command-line-interface#rasa-init). + +## Step 2: Set up your credentials in your project + +Connecting [Rasa Open Source](https://rasa.com/docs/rasa/) to Airy Core requires one configuration value: a `Rest webhook URL`, which is made of your instance's URL appended with `/webhooks/rest/webhook` (for example: https://123.eu.ngrok.io/webhooks/rest/webhook). + +In the Rasa project you created in the previous step, add your Rest webhook URL in the `credentials.yml` file, below `rest`. + +For example: + +```yml +rest: + webhook_url: "https://123.eu.ngrok.io/webhooks/rest/webhook" +``` + + + +Congratulations! You are now ready to connect Rasa Open Source to your Airy Core instance 🎉 + + +
+ +import InstallationOptions from './installation-options.mdx' + + + +## Step 2 (option 1): Installation and configuration via API request + +First, you need to install the component on your instance: send an API request to the [Components Install](/api/endpoints/components#install) endpoint to install the [Rasa Open Source](https://rasa.com/docs/rasa/) on your Airy instance. + +The request body should be: + +```json +{ + "name": "rasa-connector" +} +``` + +Once the installation is successful (indicated by a 200 response status code), you can configure the component using the [Components Update](/api/endpoints/components#update) endpoint. + +Configuring the Rasa [connector](/concepts/architecture#components) on your Airy Core instance requires your instance's URL, without any trailing slashes at the end (Airy Core's Rasa [connector](/concepts/architecture#components) automatically appends `/webhooks/rest/webhook` to the URL you provide). + +```json +{ + "components": [ + { + "name": "rasa-connector", + "enabled": true, + "data": { + //your instance's URL without trailing slashes + //(example: https://123.eu.ngrok.io) + "rasaWebhookUrl": "yourInstanceURL" + } + } + ] +} +``` + +The request is considered successful if the component's name (in this case:`rasa-connector`) is returned in the response. + +```json +{ + "components": { + "rasa-connector": true + } +} +``` + +The [Rasa Open Source](https://rasa.com/docs/rasa/) is now installed and configured on your Airy Core instance. + +## Step 2 (option 2): Installation and configuration via the Airy Control Center UI + +On the [Airy Control Center UI](/ui/control-center/introduction), navigate to the [Catalog](/ui/control-center/catalog) and select `Rasa`. Click on the `Install` button. + +Once the installation is completed, navigate to the [Control Center's Connectors page](/ui/control-center/connectors) and select `Rasa`: this will open the Rasa [connector](/concepts/architecture#components) configuration page. + +Configuring the Rasa [connector](/concepts/architecture#components) on your Airy Core instance requires your instance's URL, without any trailing slashes at the end (Airy Core's Rasa [connector](/concepts/architecture#components) automatically appends `/webhooks/rest/webhook` to the URL you provide). + +On the configuration page, paste your instance's URL in the respective input and save. + +The [Rasa Open Source](https://rasa.com/docs/rasa/) is now installed and configured on your Airy Core instance. + +## Step 3: Rasa's connection with Airy + +[Start your rasa server from your Rasa project](https://rasa.com/docs/rasa/command-line-interface#rasa-run) you created in step 1: + +```json +rasa run --enable-api +``` + +If this command fails, make sure you've set up [your virtual environment](https://rasa.com/docs/rasa/installation/environment-set-up#2-virtual-environment-setup) properly and start again. + +Once the server runs, write a message to one of your channels: Airy Core will forward it to your [Rasa Open Source](https://rasa.com/docs/rasa/) installation, which will respond to the Airy Core API according to its conversation flow. + +The screenshot below displays an [Airy Live Chat Plugin](/connectors/sources/chatplugin/overview) from an instance connected to [Rasa Open Source](https://rasa.com/docs/rasa/) through Airy Core's Rasa [connector](/concepts/architecture#components). It shows an example where a message sent to Airy Core is automatically responded to by a [Rasa Open Source](https://rasa.com/docs/rasa/) installation. + +
Airy connection with Rasa
diff --git a/docs/docs/connectors/overview.md b/docs/docs/connectors/overview.md new file mode 100644 index 0000000000..3ddc0f1ea7 --- /dev/null +++ b/docs/docs/connectors/overview.md @@ -0,0 +1,26 @@ +--- +title: Overview +sidebar_label: Overview +--- + +import ButtonBoxList from "@site/src/components/ButtonBoxList"; +import ButtonBox from "@site/src/components/ButtonBox"; + +Connect anything to your Airy Core - from our Open-Source [Airy Live Chat Plugin](sources/chatplugin/overview) to [Facebook Messenger](sources/facebook), [Instagram](sources/instagram), [Google's Business Messages](sources/google), [IBM Watson Assistant](conversational-ai/ibm-watson-assistant), and more. + +This is all possible through an ingestion platform that heavily relies on Apache Kafka to process incoming webhook data from different sources. We make sense of the data and reshape it into source independent contacts, conversations, and messages. + + + + + diff --git a/docs/docs/sources/applyVariables-note.mdx b/docs/docs/connectors/sources/applyVariables-note.mdx similarity index 100% rename from docs/docs/sources/applyVariables-note.mdx rename to docs/docs/connectors/sources/applyVariables-note.mdx diff --git a/docs/docs/sources/chatplugin/customization.md b/docs/docs/connectors/sources/chatplugin/customization.md similarity index 98% rename from docs/docs/sources/chatplugin/customization.md rename to docs/docs/connectors/sources/chatplugin/customization.md index 02cde6f793..037575b3ea 100644 --- a/docs/docs/sources/chatplugin/customization.md +++ b/docs/docs/connectors/sources/chatplugin/customization.md @@ -13,7 +13,7 @@ We support two ways of customizing your Airy Chat Plugin. For most use cases the ### Basic customization -After setting up your [first source](/sources/chatplugin/quickstart#step-1-set-up-your-first-source) you can customize your Airy Chat Plugin to your needs. +After setting up your [first source](/connectors/sources/chatplugin/quickstart#step-1-set-up-your-first-source) you can customize your Airy Chat Plugin to your needs. On your instance's [Control Center](/ui/control-center/introduction), navigate to the [Catalog](/ui/control-center/catalog) on the left sidebar and select the Airy Live Chat connector. diff --git a/docs/docs/sources/chatplugin/demo.md b/docs/docs/connectors/sources/chatplugin/demo.md similarity index 100% rename from docs/docs/sources/chatplugin/demo.md rename to docs/docs/connectors/sources/chatplugin/demo.md diff --git a/docs/docs/sources/chatplugin/installation.md b/docs/docs/connectors/sources/chatplugin/installation.md similarity index 100% rename from docs/docs/sources/chatplugin/installation.md rename to docs/docs/connectors/sources/chatplugin/installation.md diff --git a/docs/docs/sources/chatplugin/messageExamples.md b/docs/docs/connectors/sources/chatplugin/messageExamples.md similarity index 100% rename from docs/docs/sources/chatplugin/messageExamples.md rename to docs/docs/connectors/sources/chatplugin/messageExamples.md diff --git a/docs/docs/sources/chatplugin/overview.md b/docs/docs/connectors/sources/chatplugin/overview.md similarity index 98% rename from docs/docs/sources/chatplugin/overview.md rename to docs/docs/connectors/sources/chatplugin/overview.md index 13f70f92e7..e8a51af600 100644 --- a/docs/docs/sources/chatplugin/overview.md +++ b/docs/docs/connectors/sources/chatplugin/overview.md @@ -52,7 +52,7 @@ Completely customize your Live Chat and make it match your brand: icon={} title='Learn more about the customization of your Chat Plugin' description='From colors to shapes and sizes: everything is editable' - link='/sources/chatplugin/customization' + link='/connectors/sources/chatplugin/customization' /> diff --git a/docs/docs/sources/chatplugin/quickstart.md b/docs/docs/connectors/sources/chatplugin/quickstart.md similarity index 98% rename from docs/docs/sources/chatplugin/quickstart.md rename to docs/docs/connectors/sources/chatplugin/quickstart.md index 901b593fa7..5d406c3d7f 100644 --- a/docs/docs/sources/chatplugin/quickstart.md +++ b/docs/docs/connectors/sources/chatplugin/quickstart.md @@ -54,7 +54,7 @@ link='api/endpoints/channels#google'
-import ConnectChatPlugin from '../../api/endpoints/connect-chatPlugin.mdx' +import ConnectChatPlugin from '../../../api/endpoints/connect-chatPlugin.mdx' diff --git a/docs/docs/sources/connectChannelOptions.mdx b/docs/docs/connectors/sources/connectChannelOptions.mdx similarity index 100% rename from docs/docs/sources/connectChannelOptions.mdx rename to docs/docs/connectors/sources/connectChannelOptions.mdx diff --git a/docs/docs/sources/connectFormOptional.mdx b/docs/docs/connectors/sources/connectFormOptional.mdx similarity index 100% rename from docs/docs/sources/connectFormOptional.mdx rename to docs/docs/connectors/sources/connectFormOptional.mdx diff --git a/docs/docs/sources/debugging-twilio.mdx b/docs/docs/connectors/sources/debugging-twilio.mdx similarity index 100% rename from docs/docs/sources/debugging-twilio.mdx rename to docs/docs/connectors/sources/debugging-twilio.mdx diff --git a/docs/docs/sources/facebook.md b/docs/docs/connectors/sources/facebook.md similarity index 99% rename from docs/docs/sources/facebook.md rename to docs/docs/connectors/sources/facebook.md index 686c32f409..4994735725 100644 --- a/docs/docs/sources/facebook.md +++ b/docs/docs/connectors/sources/facebook.md @@ -197,7 +197,7 @@ link='api/endpoints/channels#facebook'
-import ConnectFacebook from '../api/endpoints/connect-facebook.mdx' +import ConnectFacebook from '../../api/endpoints/connect-facebook.mdx' diff --git a/docs/docs/sources/google.md b/docs/docs/connectors/sources/google.md similarity index 98% rename from docs/docs/sources/google.md rename to docs/docs/connectors/sources/google.md index 0758335dd6..a2a0a458a4 100644 --- a/docs/docs/sources/google.md +++ b/docs/docs/connectors/sources/google.md @@ -114,7 +114,7 @@ link='api/endpoints/channels#google'
-import ConnectGoogle from '../api/endpoints/connect-google.mdx' +import ConnectGoogle from '../../api/endpoints/connect-google.mdx' diff --git a/docs/docs/sources/inbox-messages.mdx b/docs/docs/connectors/sources/inbox-messages.mdx similarity index 100% rename from docs/docs/sources/inbox-messages.mdx rename to docs/docs/connectors/sources/inbox-messages.mdx diff --git a/docs/docs/sources/instagram.md b/docs/docs/connectors/sources/instagram.md similarity index 99% rename from docs/docs/sources/instagram.md rename to docs/docs/connectors/sources/instagram.md index b525bac125..e32a1712ad 100644 --- a/docs/docs/sources/instagram.md +++ b/docs/docs/connectors/sources/instagram.md @@ -177,7 +177,7 @@ link='api/endpoints/channels#instagram'
-import ConnectInstagram from '../api/endpoints/connect-instagram.mdx' +import ConnectInstagram from '../../api/endpoints/connect-instagram.mdx' diff --git a/docs/docs/sources/introduction.md b/docs/docs/connectors/sources/introduction.md similarity index 93% rename from docs/docs/sources/introduction.md rename to docs/docs/connectors/sources/introduction.md index d57ebdfe7f..bdebc96120 100644 --- a/docs/docs/sources/introduction.md +++ b/docs/docs/connectors/sources/introduction.md @@ -39,7 +39,7 @@ icon={} title='Connectors' iconInvertible={true} description='With the Control Center UI you can connect your connectors via UI' -link='http://localhost/ui/control-center/introduction' +link='/ui/control-center/connectors' /> ## Sources guides @@ -49,49 +49,49 @@ link='http://localhost/ui/control-center/introduction' icon={} title='Airy Live Chat Plugin' description='The Airy Live Chat Plugin enables conversations with website visitors through a web chat plugin' - link='/sources/chatplugin/overview' + link='connectors/sources/chatplugin/overview' /> } title='Facebook Messenger' description='Send and receive messages from Facebook Pages' -link='sources/facebook' +link='connectors/sources/facebook' /> } title='Instagram' description='Send and receive messages from Instagram accounts' -link='sources/instagram' +link='connectors/sources/instagram' /> } title='Google’s Business Messages' description='Start conversations from Google Maps & Google Search' -link='sources/google' +link='connectors/sources/google' /> } title='WhatsApp Business API' description='Connect with more than 1.5 billion people on WhatsApp' -link='sources/whatsapp-twilio' +link='connectors/sources/whatsapp-twilio' /> } title='SMS' description='Connect Text Messaging to Airy & send and receive SMS' -link='sources/sms-twilio' +link='connectors/sources/sms-twilio' /> } title='Viber' description='Connect the messaging app Viber to Airy' -link='sources/viber' +link='connectors/sources/viber' /> diff --git a/docs/docs/sources/sms-twilio.md b/docs/docs/connectors/sources/sms-twilio.md similarity index 97% rename from docs/docs/sources/sms-twilio.md rename to docs/docs/connectors/sources/sms-twilio.md index 8c4ffa2cd5..ba355673cd 100644 --- a/docs/docs/sources/sms-twilio.md +++ b/docs/docs/connectors/sources/sms-twilio.md @@ -72,7 +72,7 @@ link='api/endpoints/channels#sms' -import ConnectTwilioSms from '../api/endpoints/connect-twilioSms.mdx' +import ConnectTwilioSms from '../../api/endpoints/connect-twilioSms.mdx' ## Connect Twilio.SMS via the UI diff --git a/docs/docs/sources/twilio-config.mdx b/docs/docs/connectors/sources/twilio-config.mdx similarity index 100% rename from docs/docs/sources/twilio-config.mdx rename to docs/docs/connectors/sources/twilio-config.mdx diff --git a/docs/docs/sources/twilio-send-message.mdx b/docs/docs/connectors/sources/twilio-send-message.mdx similarity index 100% rename from docs/docs/sources/twilio-send-message.mdx rename to docs/docs/connectors/sources/twilio-send-message.mdx diff --git a/docs/docs/sources/twilio-sources.mdx b/docs/docs/connectors/sources/twilio-sources.mdx similarity index 100% rename from docs/docs/sources/twilio-sources.mdx rename to docs/docs/connectors/sources/twilio-sources.mdx diff --git a/docs/docs/sources/viber.md b/docs/docs/connectors/sources/viber.md similarity index 98% rename from docs/docs/sources/viber.md rename to docs/docs/connectors/sources/viber.md index 08cbcd881d..49b231ef98 100644 --- a/docs/docs/sources/viber.md +++ b/docs/docs/connectors/sources/viber.md @@ -69,7 +69,7 @@ link='api/endpoints/channels#viber'
-import ConnectViber from '../api/endpoints/connect-viber.mdx' +import ConnectViber from '../../api/endpoints/connect-viber.mdx' diff --git a/docs/docs/sources/whatsapp-cloud.md b/docs/docs/connectors/sources/whatsapp-cloud.md similarity index 98% rename from docs/docs/sources/whatsapp-cloud.md rename to docs/docs/connectors/sources/whatsapp-cloud.md index bfcf23c041..c48e3eaa5f 100644 --- a/docs/docs/sources/whatsapp-cloud.md +++ b/docs/docs/connectors/sources/whatsapp-cloud.md @@ -117,7 +117,7 @@ link='api/endpoints/channels#whatsapp'
-import ConnectWhatsapp from '../api/endpoints/connect-whatsapp.mdx' +import ConnectWhatsapp from '../../api/endpoints/connect-whatsapp.mdx' diff --git a/docs/docs/sources/whatsapp-twilio.md b/docs/docs/connectors/sources/whatsapp-twilio.md similarity index 97% rename from docs/docs/sources/whatsapp-twilio.md rename to docs/docs/connectors/sources/whatsapp-twilio.md index a76f68e8ef..23486c6e37 100644 --- a/docs/docs/sources/whatsapp-twilio.md +++ b/docs/docs/connectors/sources/whatsapp-twilio.md @@ -72,7 +72,7 @@ link='api/endpoints/channels#whatsapp' -import ConnectTwilioWhatsApp from '../api/endpoints/connect-twilioWhatsApp.mdx' +import ConnectTwilioWhatsApp from '../../api/endpoints/connect-twilioWhatsApp.mdx' ### Connect Twilio.WhatsApp via the UI diff --git a/docs/docs/getting-started/components.md b/docs/docs/getting-started/components.md index 7873f4a08a..2a6070e179 100644 --- a/docs/docs/getting-started/components.md +++ b/docs/docs/getting-started/components.md @@ -11,7 +11,6 @@ import SpeechBalloonSVG from "@site/static/icons/speechBalloon.svg"; import HighVoltageSVG from "@site/static/icons/highVoltage.svg"; import ElectricPlugSVG from "@site/static/icons/electricPlug.svg"; import FishingPoleSVG from "@site/static/icons/fishingPole.svg"; -import GearSVG from "@site/static/icons/gear.svg"; import TLDR from "@site/src/components/TLDR"; @@ -36,9 +35,9 @@ Airy Core contains the following components: } iconInvertible={true} - title='Connectors for all conversational sources' - description="Connect anything from our free open-source live chat plugin, Facebook Messenger, Google's Business Messages to your Airy Core. This is all possible through an ingestion platform that heavily relies on Apache Kafka to process incoming webhook data from different sources. We make sense of the data and reshape it into source independent contacts, conversations, and messages." - link='/sources/introduction' + title='Connectors' + description="Connect anything to your Airy Core - from our Open-Source Airy Live Chat Plugin to Facebook Messenger, Instagram, Google's Business Messages, IBM Watson Assistant, and more. This is all possible through an ingestion platform that heavily relies on Apache Kafka to process incoming webhook data from different sources. We make sense of the data and reshape it into source independent contacts, conversations, and messages." + link='/connectors/sources/introduction' /> } @@ -68,13 +67,6 @@ Airy Core contains the following components: description="Not every message can be handled by code, this is why Airy comes with different UIs ready for you and your teams to use." link='/ui/inbox/introduction' /> -} - iconInvertible={true} - title='Integrations' - description="Pre-made integrations into popular conversational tools, for example NLP tools like Rasa" - link='/integrations/rasa-assistant' -/> ## Installation diff --git a/docs/docs/getting-started/installation/aws.md b/docs/docs/getting-started/installation/aws.md index acc45b6f3e..9b1eb471ab 100644 --- a/docs/docs/getting-started/installation/aws.md +++ b/docs/docs/getting-started/installation/aws.md @@ -271,7 +271,7 @@ After this, your `Airy Core` will be reachable under HTTPS and on your desired h ## Integrate public webhooks The public webhooks will be accessible on the public hostname, at a path specific for each source individually. -Refer to the [sources documentation](/sources/introduction) for more information. +Refer to the [sources documentation](/connectors/sources/introduction) for more information. To get the public URL of your AWS Airy Core installation run: diff --git a/docs/docs/getting-started/installation/minikube.md b/docs/docs/getting-started/installation/minikube.md index 71f234fdf4..bf9a7912dc 100644 --- a/docs/docs/getting-started/installation/minikube.md +++ b/docs/docs/getting-started/installation/minikube.md @@ -44,7 +44,7 @@ This will execute the following actions: :::note The base URL for the [API](../../api/introduction.md) is the same to access the UI through your browser. -You can use the printed `ngrok` URL to connect to different [sources](../../sources/introduction.md) to the instance running on your local machine. +You can use the printed `ngrok` URL to connect to different [sources](../../connectors/sources/introduction.md) to the instance running on your local machine. ::: diff --git a/docs/docs/getting-started/quickstart.md b/docs/docs/getting-started/quickstart.md index e8e07cc0dd..3ab2e8c9fb 100644 --- a/docs/docs/getting-started/quickstart.md +++ b/docs/docs/getting-started/quickstart.md @@ -36,13 +36,13 @@ link='/getting-started/installation/introduction' The Quickstart guide explains setting up and using the Chatplugin source which is enabled by default. -To enable and use other sources, please refer to our [Sources documentation](/sources/introduction). +To enable and use other sources, please refer to our [Sources documentation](/connectors/sources/introduction). ::: ## Step 1: How to setup your first source -The [Airy Live Chat Plugin](/sources/chatplugin/overview.md) source is well suited for a +The [Airy Live Chat Plugin](/connectors/sources/chatplugin/overview.md) source is well suited for a first integration because it does not require any configuration. ```shell script diff --git a/docs/docs/integrations/rasa-assistant.md b/docs/docs/integrations/rasa-assistant.md deleted file mode 100644 index 09172f34f6..0000000000 --- a/docs/docs/integrations/rasa-assistant.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: Rasa Chat Assistant -sidebar_label: Rasa Assistant ---- - -import useBaseUrl from '@docusaurus/useBaseUrl'; -import TLDR from "@site/src/components/TLDR"; - - - -Rasa is an open-source machine learning framework for automated text and voice-based conversations. Understand messages, hold conversations, and connect to messaging channels and APIs. - -\- From the [Rasa documentation](https://rasa.com/docs/rasa/) - - - -:::tip What you will learn - -- How to forward Airy Core messages to Rasa -- How to configure Rasa to receive and reply to messages using Airy - -::: - -Out of the box Rasa offers you a standard set of messaging channels to connect -to. However, you can only connect to one Facebook page at a time. -This is perfectly fine for simple use cases, but as your platform grows and you -want to scale your bot interactions across many channels you will need a -dedicated solution for storing and routing messages. - -This is where Airy Core can provide great scale benefits: You can connect a wide -array of messaging channels and service them in a single inbox. For Rasa, you -can think of it as a forward messaging router that will persist your data and -make it available for export to anywhere within your organization. - -This guide covers how to configure your Rasa installation so that it can use -Airy Core to send and receive messages. - -:::note Prerequisites - -- A running Airy Core installation [Get - Started](getting-started/installation/introduction.md) -- A local Rasa setup: For convenience, we recommend [the Docker setup](https://rasa.com/docs/rasa/docker/building-in-docker/) or [the demo repository](https://github.com/airyhq/rasa-demo) we created for this guide - -::: - -## Configuring Airy - -Airy Core can forward messages from your sources (Messenger, WhatsApp etc.) to -downstream messaging frameworks like Rasa, which can in turn reply using the -Airy Core API. - -To do this we follow the [webhook documentation](api/webhook.md) to forward in- -and outbound messages to Rasa. When doing so, set the `url` parameter so that it -points to your Rasa installation. If your Airy Core instance is running locally you can obtain a -public URL by using [ngrok](https://ngrok.com/). Run: - -```shell script -ngrok http 5005 -``` - -to get an ngrok URL that points to your local Rasa installation at -`localhost:5005`. With the public ngrok URL your webhook subscription payload -should look like so: - -```json -{ - "url": "https://e3effaceb9c5.ngrok.io/webhooks/airy/webhook" -} -``` - -Once you have done this, the Airy Core will start sending messages to the URL -you specified. - -successful webhook connection log - -## Configuring Rasa - -We will be implementing a [custom -connector](https://rasa.com/docs/rasa/connectors/custom-connectors/) as we want -to make use of the Airy Core API. - -The first step is to create a new directory `channels/` in our Rasa project and -copy this [connector -file](https://github.com/airyhq/rasa-demo/blob/main/channels/airy.py) into it. -The connector requires the following configuration values: - -- `system_token` is the Airy Core system token used for authenticating with the API. -- `api_host` is the URL where you host your Airy Core API. - -Add the configuration values to your existing Rasa `credentials.yml`: - -```yaml -channels.airy.AiryInput: - api_host: "http://localhost" - system_token: "the system api token for Airy Core" -``` - -Now you should have a working integration 🎉. - -To test the connection write a message to one of your channels: Airy Core will -forward it to your Rasa installation, which will respond using the Airy Core -API. This is what you should see in the logs of the demo repository: - -send message successful connection log diff --git a/docs/docs/integrations/rasa-suggested-replies.md b/docs/docs/integrations/rasa-suggested-replies.md deleted file mode 100644 index d046f6b39f..0000000000 --- a/docs/docs/integrations/rasa-suggested-replies.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Suggested replies with Rasa -sidebar_label: Rasa Suggested Replies ---- - -import useBaseUrl from '@docusaurus/useBaseUrl'; - -:::note Prerequisites - -This guide assumes that you completed the [Rasa Chat assistant guide](/integrations/rasa-assistant.md), which means you have: - -- a running Airy Core instance -- a Rasa setup connected to that instance with a custom channel (see the [demo repository](https://github.com/airyhq/rasa-demo)) - -::: - -## How it works - -see suggested replies in the Airy inbox when receiving a contact greeting - -Chatbots can serve a wide variety of use cases like answering frequently asked questions or booking flows. -Customer support however often requires a human agent to serve user questions with a high degree of quality. With Airy -Core you can get the best of both worlds by using NLP frameworks like Rasa to suggest a set of replies to the agent. -This way agents can handle the vast majority of use cases with the click of a button (see screenshot). - -## Configuring Rasa - -- [Step 1: Add a custom response type](#step-1-add-a-custom-response-type) -- [Step 2: Update the user stories](#step-2-update-the-user-stories) -- [Step 3: Extend the Airy connector](#step-3-extend-the-airy-connector) -- [Step 4: Retrain and restart](#step-4-consume-directly-from-apache-kafka) - -### Step 1: Add a custom response type - -The easiest way to instruct Rasa to suggest replies for user messages is by adding them as a [custom response type](https://rasa.com/docs/rasa/responses/#custom-output-payloads). To do this we add the following block to the `responses` section in our `domain.yaml`: - -```yaml -responses: - utter_suggest_greet: - - custom: - suggest-informal: - content: - text: "Hey, what's up?" - suggest-formal: - content: - text: "Hi, what can I help you with?" -``` - -### Step 2: Update the user stories - -Now we can use this new response type in our `stories.yaml` to let the bot know when to suggest replies: - -```yaml -stories: - - story: happy path - steps: - - intent: greet - - action: utter_suggest_greet - - intent: mood_great - - action: utter_happy -``` - -### Step 3: Extend the Airy connector - -Now we need to update our [custom Rasa connector](https://rasa.com/docs/rasa/connectors/custom-connectors/) for Airy Core to this response type. For -this we extend the [send_response method](https://github.com/airyhq/rasa-demo/blob/4f2fdd6063385cea805f2d70755733de347e8792/channels/airy.py#L32) in the Airy connector so that it calls the [suggest replies API](/api/endpoints/messages#suggested-replies) whenever -it encounters a custom response payload: - -```python -async def send_response(self, recipient_id: Text, message: Dict[Text, Any]) -> None: - headers = { - "Authorization": self.system_token - } - if message.get("custom"): - body = { - "message_id": self.last_message_id, - "suggestions": message.get("custom") - } - requests.post("{}/messages.suggestReplies".format(self.api_host), headers=headers, json=body) - elif message.get("text"): - body = { - "conversation_id": recipient_id, - "message": { - "text": message.get("text") - } - } - requests.post("{}/messages.send".format(self.api_host), headers=headers, json=body) -``` - -### Step 4: Retrain and restart - -Now we need to stop the server and retrain the model: - -```shell script -rasa train -``` - -Finally, we start the Rasa server, open the Airy Inbox (at `http://localhost` for local deployments), where we should -see the suggested replies whenever a contact greets us (see gif above). diff --git a/docs/docs/ui/control-center/catalog.md b/docs/docs/ui/control-center/catalog.md index 779d9d53c8..f43cbbfd6e 100644 --- a/docs/docs/ui/control-center/catalog.md +++ b/docs/docs/ui/control-center/catalog.md @@ -5,7 +5,7 @@ sidebar_label: Catalog import useBaseUrl from '@docusaurus/useBaseUrl'; -The Catalog page of the [Control Center](/ui/control-center/introduction) lists both the [connectors](/sources/introduction) that have been installed and those that are not installed. +The Catalog page of the [Control Center](/ui/control-center/introduction) lists both the [connectors](/connectors/sources/introduction) that have been installed and those that are not installed. In the Catalog 'Not Installed' list, you can choose which connector you want to add and configure it easily (see [Configuration](catalog#configuration) below). @@ -15,24 +15,24 @@ A connector is listed in the [Connectors](connectors) page once it has been succ The screenshots below come from a sample Airy Core app's Control Center UI. -The Catalog shows that the app is already connected to the [Airy Live Chat](/sources/chatplugin/quickstart), [Facebook Messenger](/sources/facebook), [WhatsApp](/sources/whatsapp-twilio), [Google Business Messages](/sources/google), and [Instagram](/sources/instagram) connectors. The [SMS](/sources/sms-twilio) connector hasn't been installed yet and is available to connect. +The Catalog shows that the app is already connected to the [Airy Live Chat](/connectors/sources/chatplugin/quickstart), [Facebook Messenger](/connectors/sources/facebook), [WhatsApp](/connectors/sources/whatsapp-twilio), [Google Business Messages](/connectors/sources/google), and [Instagram](/connectors/sources/instagram) connectors. The [SMS](/connectors/sources/sms-twilio) connector hasn't been installed yet and is available to connect. Control Center Catalog Example ## Configuration -- [Airy Live Chat](https://airy.co/docs/core/sources/chatplugin/quickstart) +- [Airy Live Chat](https://airy.co/docs/core/connectors/sources/chatplugin/quickstart) - Step 1: Sign up and log in - Step 2: Set up first source - Step 3: Send messages via the Chat Plugin - Step 4: Use the HTTP API to list conversations - Step 5: Consume directly from Apache Kafka -- [Facebook](https://airy.co/docs/core/sources/facebook#configuration) +- [Facebook](https://airy.co/docs/core/connectors/sources/facebook#configuration) - Step 1: Find the App ID and Secret - Step 2: Configure the webhook integration - Step 3: Obtain the page token - Step 4: Connect Facebook page to your instance -- [Instagram](https://airy.co/docs/core/sources/instagram#configuration) +- [Instagram](https://airy.co/docs/core/connectors/sources/instagram#configuration) - Step 1: Find the App ID and Secret - Step 2: Configure the webhook integration - Step 3: Enable the Instagram Graph API @@ -40,11 +40,11 @@ The Catalog shows that the app is already connected to the [Airy Live Chat](/sou - Step 5: Get the Instagram account ID - Step 6: Connect an Instagram channel via API request - Step 7: Send a message to Instagram -- [Twilio SMS](https://airy.co/docs/core/sources/sms-twilio#configuration) & [Twilio Whatsapp](https://airy.co/docs/core/sources/whatsapp-twilio#configuration) +- [Twilio SMS](https://airy.co/docs/core/connectors/sources/sms-twilio#configuration) & [Twilio Whatsapp](https://airy.co/docs/core/connectors/sources/whatsapp-twilio#configuration) - Step 1: Configure the webhook integration - Step 2: Connect a Twilio provider to your instance - Step 3: Send and receive messages with the Inbox UI -- [Google](https://airy.co/docs/core/sources/google#configuration) +- [Google](https://airy.co/docs/core/connectors/sources/google#configuration) - Step 1: Registration - Step 2: Editing of the yaml file in Airy Core - Step 3: Verification by Google diff --git a/docs/docs/ui/control-center/connectors.md b/docs/docs/ui/control-center/connectors.md index ab59264f4d..05ed047990 100644 --- a/docs/docs/ui/control-center/connectors.md +++ b/docs/docs/ui/control-center/connectors.md @@ -1,6 +1,6 @@ --- -title: Connectors -sidebar_label: Connectors +title: Connectors UI +sidebar_label: Connectors UI --- import TLDR from "@site/src/components/TLDR"; @@ -8,7 +8,7 @@ import ButtonBox from "@site/src/components/ButtonBox"; import useBaseUrl from '@docusaurus/useBaseUrl'; import ChannelsUI from "@site/static/icons/channelsUi.svg"; -On the Connectors page of the [Control Center](/ui/control-center/introduction), you can view your app's [connectors](/sources/introduction) and edit their [configuration](catalog#configuration). +On the Connectors page of the [Control Center](/ui/control-center/introduction), you can view your app's [connectors](/connectors/sources/introduction) and edit their [configuration](catalog#configuration). A connector is listed in this page once it has been successfully connected through the [Catalog](catalog). diff --git a/docs/docs/ui/inbox/introduction.md b/docs/docs/ui/inbox/introduction.md index 70f4fc2539..d584c84c56 100644 --- a/docs/docs/ui/inbox/introduction.md +++ b/docs/docs/ui/inbox/introduction.md @@ -13,7 +13,7 @@ import ChannelsUI from "@site/static/icons/channelsUi.svg"; import ContactsSVG from "@site/static/icons/contacts.svg"; import useBaseUrl from '@docusaurus/useBaseUrl'; -The Inbox features a [Messenger](messenger), filled with the conversations from all of your [connectors](sources/introduction.md). You can chat, organize your conversations with features such as [Filters, Search](messenger#search-and-filter) and [Tags](tags), view and edit [contacts](contacts), in addition to adding [suggested replies](suggestedReplies) to messages to improve response time. +The Inbox features a [Messenger](messenger), filled with the conversations from all of your [connectors](connectors/sources/introduction.md). You can chat, organize your conversations with features such as [Filters, Search](messenger#search-and-filter) and [Tags](tags), view and edit [contacts](contacts), in addition to adding [suggested replies](suggestedReplies) to messages to improve response time. To run the Inbox UI locally, you can start its development server with the command:
`./scripts/web-dev.sh //frontend/inbox:bundle_server` diff --git a/docs/docs/ui/inbox/messenger.md b/docs/docs/ui/inbox/messenger.md index 7674efd0a0..3d66f6f4a5 100644 --- a/docs/docs/ui/inbox/messenger.md +++ b/docs/docs/ui/inbox/messenger.md @@ -12,7 +12,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; Airy’s Inbox features a messenger that centralizes all your conversations and supports [many types of content in messages](#message-types) such as text, image, video, voice recording, template and more. -You can view, interact with, and manage multiple conversations, regardless of whether they come via the [Airy Live Chat Plugin](sources/chatplugin/overview.md), [Facebook Messenger](sources/facebook.md), [Google’s Business Messages](sources/google.md), [SMS](sources/sms-twilio.md), [WhatsApp](sources/whatsapp-twilio.md) or a custom source. [Search and filter](#search-and-filter) through your conversations and use [tags](tags) to customize your workflow. +You can view, interact with, and manage multiple conversations, regardless of whether they come via the [Airy Live Chat Plugin](connectors/sources/chatplugin/overview.md), [Facebook Messenger](connectors/sources/facebook.md), [Google’s Business Messages](connectors/sources/google.md), [SMS](connectors/sources/sms-twilio.md), [WhatsApp](connectors/sources/whatsapp-twilio.md) or a custom source. [Search and filter](#search-and-filter) through your conversations and use [tags](tags) to customize your workflow. Inbox Messenger Demo @@ -132,7 +132,7 @@ This enables you and your team to interact with your website visitors in a riche icon={} title='Airy Live Chat Plugin' description='The Airy Live Chat Plugin enables conversations with website visitors through a web chat plugin' -link='sources/chatplugin/overview' +link='connectors/sources/chatplugin/overview' />
diff --git a/docs/docs/ui/inbox/suggestedReplies.md b/docs/docs/ui/inbox/suggestedReplies.md index b25a3e5125..570cb89bb0 100644 --- a/docs/docs/ui/inbox/suggestedReplies.md +++ b/docs/docs/ui/inbox/suggestedReplies.md @@ -33,14 +33,3 @@ link='api/endpoints/messages#suggest-replies' import SuggestReplies from '../../api/endpoints/suggest-replies.mdx' - -## Integration with Rasa for further message automation - -You can integrate the open-source machine learning framework Rasa to automate sending messages on your Airy Core instance. - -} -title='Rasa integration' -description='Configure Rasa to receive and reply to messages using Airy' -link='integrations/rasa-assistant' -/> diff --git a/docs/docs/ui/overview.md b/docs/docs/ui/overview.md index 5afc84d6ba..8957e0bf05 100644 --- a/docs/docs/ui/overview.md +++ b/docs/docs/ui/overview.md @@ -14,7 +14,7 @@ import TLDR from "@site/src/components/TLDR"; Not every message can be handled by code, which is why Airy comes with different UIs ready for you and your team to use.
-While the [Chat Plugin](sources/chatplugin/overview.md) is the open-source chat UI for your website and app visitors, Airy UI offers all of the interfaces you need internally for a messaging platform. +While the [Chat Plugin](connectors/sources/chatplugin/overview.md) is the open-source chat UI for your website and app visitors, Airy UI offers all of the interfaces you need internally for a messaging platform. Airy UI comes with two open-source, customizable separate UIs: the [Inbox](inbox/introduction) and the [Control Center](control-center/introduction). Both can be accessed through a common landing page (see screenshot below). diff --git a/docs/docs/ui/testing/integration-testing.md b/docs/docs/ui/testing/integration-testing.md index 49857ee40d..690e587a47 100644 --- a/docs/docs/ui/testing/integration-testing.md +++ b/docs/docs/ui/testing/integration-testing.md @@ -7,7 +7,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; import SuccessBox from "@site/src/components/SuccessBox"; We use the end-to-end testing tool [Cypress](https://docs.cypress.io/guides/overview/why-cypress) to test -the main features of the [Airy Live Chat Plugin](/sources/chatplugin/overview), the [Inbox](/ui/inbox/introduction), and the [Control Center](/ui/control-center/introduction). +the main features of the [Airy Live Chat Plugin](/connectors/sources/chatplugin/overview), the [Inbox](/ui/inbox/introduction), and the [Control Center](/ui/control-center/introduction). You can find the tests in the airy repository at `/integration`. The tests are intended to be run on a local instance; a few values need to be configured before the tests can be run. @@ -23,7 +23,7 @@ Here is a step-by-step guide to running the tests locally: - Next, start the development server for the [Control Center](/ui/control-center/introduction) with the command:
`./scripts/web-dev.sh //frontend/control-center:bundle_server` -- Navigate to the `Catalog` page and install the [Airy Live Chat Plugin](/sources/chatplugin/overview). Once it is installed, navigate to the `Connectors` page, select `Airy Chat Plugin`, and add a new channel. +- Navigate to the `Catalog` page and install the [Airy Live Chat Plugin](/connectors/sources/chatplugin/overview). Once it is installed, navigate to the `Connectors` page, select `Airy Chat Plugin`, and add a new channel. - Copy the channelID of the new channel and add it to the [Cypress](https://docs.cypress.io/guides/overview/why-cypress) configuration file `/integration/cypress.config.ts` at `env.channelId`. @@ -34,7 +34,7 @@ Here is a step-by-step guide to running the tests locally: - Start the development server of the [Inbox](/ui/inbox/introduction):
`./scripts/web-dev.sh //frontend/inbox:bundle_server` -- You should see the conversation of the [Airy Live Chat Plugin](/sources/chatplugin/overview) channel you just created. Copy its conversationID (it is the id that is passed in its URL) and add it to the configuration file `/integration/cypress.config.ts` at `env.conversationId`. +- You should see the conversation of the [Airy Live Chat Plugin](/connectors/sources/chatplugin/overview) channel you just created. Copy its conversationID (it is the id that is passed in its URL) and add it to the configuration file `/integration/cypress.config.ts` at `env.conversationId`. - Then, copy the id of the conversation's message and add it to the configuration file `/integration/cypress.config.ts` at `env. messageId` (you can find the message's id by inspecting its DOM element, as the id is passed to the DIV as a key). diff --git a/docs/sidebars.js b/docs/sidebars.js index f6699094cb..6638f37132 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -25,26 +25,38 @@ module.exports = { ], }, { - '💬 Sources': [ - 'sources/introduction', + '💬 Connectors': [ + 'connectors/overview', { - 'Airy Live Chat Plugin': [ - 'sources/chatplugin/overview', - 'sources/chatplugin/demo', - 'sources/chatplugin/quickstart', - 'sources/chatplugin/installation', - 'sources/chatplugin/messageExamples', - 'sources/chatplugin/customization', + Sources: [ + 'connectors/sources/introduction', + { + 'Airy Live Chat Plugin': [ + 'connectors/sources/chatplugin/overview', + 'connectors/sources/chatplugin/demo', + 'connectors/sources/chatplugin/quickstart', + 'connectors/sources/chatplugin/installation', + 'connectors/sources/chatplugin/messageExamples', + 'connectors/sources/chatplugin/customization', + ], + }, + 'connectors/sources/facebook', + 'connectors/sources/whatsapp-cloud', + 'connectors/sources/instagram', + 'connectors/sources/google', + 'connectors/sources/whatsapp-twilio', + 'connectors/sources/sms-twilio', + 'connectors/sources/viber', + ], + }, + { + 'Conversational AI': [ + 'connectors/conversational-ai/introduction', + 'connectors/conversational-ai/cognigy-ai', + 'connectors/conversational-ai/ibm-watson-assistant', + 'connectors/conversational-ai/rasa', ], }, - 'sources/facebook', - 'sources/whatsapp-cloud', - 'sources/instagram', - 'sources/google', - 'sources/whatsapp-twilio', - 'sources/sms-twilio', - 'sources/viber', - 'ui/control-center/connectors', ], }, { @@ -100,18 +112,6 @@ module.exports = { }, ], }, - { - '🛠️ Integrations': [ - { - 'Conversational AI /NLP': [ - 'integrations/ibm-watson-assistant', - 'integrations/cognigy-ai', - 'integrations/rasa-assistant', - 'integrations/rasa-suggested-replies', - ], - }, - ], - }, { '⚙️ Concepts': [ 'concepts/architecture', diff --git a/docs/static/icons/robot.svg b/docs/static/icons/robot.svg new file mode 100644 index 0000000000..e550fcd7d9 --- /dev/null +++ b/docs/static/icons/robot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/static/img/integrations/cognigy/flow.png b/docs/static/img/conversational-ai-connectors/cognigy/flow.png similarity index 100% rename from docs/static/img/integrations/cognigy/flow.png rename to docs/static/img/conversational-ai-connectors/cognigy/flow.png diff --git a/docs/static/img/integrations/cognigy/messagingExample.png b/docs/static/img/conversational-ai-connectors/cognigy/messagingExample.png similarity index 100% rename from docs/static/img/integrations/cognigy/messagingExample.png rename to docs/static/img/conversational-ai-connectors/cognigy/messagingExample.png diff --git a/docs/static/img/integrations/ibmWatsonAssistant/messagingExample.png b/docs/static/img/conversational-ai-connectors/ibmWatsonAssistant/messagingExample.png similarity index 100% rename from docs/static/img/integrations/ibmWatsonAssistant/messagingExample.png rename to docs/static/img/conversational-ai-connectors/ibmWatsonAssistant/messagingExample.png diff --git a/docs/static/img/conversational-ai-connectors/rasa/messagingExample.png b/docs/static/img/conversational-ai-connectors/rasa/messagingExample.png new file mode 100644 index 0000000000000000000000000000000000000000..a8b7837f744a92e690e7f6120a8f655efd255162 GIT binary patch literal 43907 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 z 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 QL(RWS&42p$a#z#;1#-d{LjV8( diff --git a/docs/static/img/integrations/rasa/suggested-replies.gif b/docs/static/img/integrations/rasa/suggested-replies.gif deleted file mode 100644 index b54d1fe453fc70319c9a486a0ec7f5d050450fae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250680 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⪙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

fUNicJt~FKy^UiPS1;{RC>=JN)~p%in|OEC5A9 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

sAld?f~E7 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 diff --git a/docs/static/img/integrations/rasa/webhook_success.jpg b/docs/static/img/integrations/rasa/webhook_success.jpg deleted file mode 100644 index 73c199a50f08d6151c1a5ad4b9f4f29640e685e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288318 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 I@=qu|?#7YMS;| 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�{Z-KNZ|`@A3J0;^U<=SH^sT4^fL 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

7GL>grFg)-mmvG$F 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 z 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 diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index dcf9aa7872..ee042744e8 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -356,8 +356,8 @@ const resources = { inputTooltipSalesforceSecurityToken: 'Your Salesforce Security Token', //Rasa - inputTooltipRasaRasaWebhookUrl: 'http://: (example: htpp://localhost:5005)', - rasaPlaceholder: 'http://:', + inputTooltipRasaRasaWebhookUrl: 'URL without trailing slash (example: https://123.ngrok.io)', + rasaPlaceholder: 'https://', //Facebook Messenger connectMessenger: 'Connect Messenger', @@ -918,8 +918,8 @@ const resources = { inputTooltipSalesforceSecurityToken: 'Ihr Salesforce-Sicherheitstoken', //Rasa - inputTooltipRasaRasaRestWebhookUrl: 'http://: (Beispiel: htpp://localhost:5005)', - rasaPlaceholder: 'http://:', + inputTooltipRasaRasaRestWebhookUrl: 'URL ohne Trailing Slashes (Beispiel: https://123.ngrok.io)', + rasaPlaceholder: 'https://', //WhatsApp Business Cloud whatsappDescription: 'Weltweite Chat-App Nr. 1', @@ -1619,8 +1619,8 @@ const resources = { send: 'Envoyer', //Rasa - inputTooltipRasaRasaRestWebhookUrl: 'http://: (example: htpp://localhost:5005)', - rasaPlaceholder: 'http://:', + inputTooltipRasaRasaRestWebhookUrl: 'https:// (example: https://123.ngrok.io)', + rasaPlaceholder: 'https://', //Whatsapp Business Cloud whatsappBusinessCloudAppIdPlaceholder: 'Votre App ID', @@ -2180,8 +2180,8 @@ const resources = { send: 'Enviar', //Rasa - inputTooltipRasaRasaRestWebhookUrl: 'host + port (ejemplo: http://0.0.0.0:5005)', - rasaPlaceholder: 'http://:', + inputTooltipRasaRasaRestWebhookUrl: 'URL (ejemplo: https://123.ngrok.io)', + rasaPlaceholder: 'https://', //Whatsapp Business Cloud whatsappBusinessCloudAppIdPlaceholder: 'Su App ID', From fa1e859318debb50e5f58b7452b73ab562baa9ec Mon Sep 17 00:00:00 2001 From: Ljupco Vangelski Date: Wed, 9 Nov 2022 09:59:52 +0100 Subject: [PATCH 16/28] [#3878] Adding Loading indicators to control-center (#3922) --- bazel.tsconfig.json | 1 + frontend/control-center/BUILD | 2 + frontend/control-center/src/App.tsx | 24 +- .../src/components/ChannelAvatar/index.tsx | 4 + .../src/components/Sidebar/index.tsx | 4 +- .../Catalog/CatalogCard/index.module.scss | 13 +- .../src/pages/Catalog/CatalogCard/index.tsx | 235 +- .../Catalog/CatalogItemDetails/index.tsx | 83 +- .../FilterCatalogModal.module.scss | 1 + .../src/pages/Catalog/index.tsx | 141 +- .../Connectors/ChannelCard/index.module.scss | 2 +- .../Connectors/InfoCard/index.module.scss | 2 +- .../src/pages/Connectors/index.module.scss | 2 +- .../src/pages/Connectors/index.tsx | 38 +- .../control-center/src/pages/Status/index.tsx | 57 +- .../Webhooks/EmptyState/index.module.scss | 2 +- .../src/pages/Webhooks/EmptyState/index.tsx | 33 +- .../src/pages/Webhooks/index.tsx | 64 +- .../src/reducers/data/catalog/index.ts | 4 +- .../src/selectors/connectors.ts | 6 +- .../assets/images/icons/amazonLexV2Logo.svg | 1 + lib/typescript/components/BUILD | 2 + .../NotificationComponent/index.module.scss | 3 + .../components/loaders/AiryLoader/data.json | 3618 +++++++++++++++++ .../loaders/AiryLoader/index.module.scss | 0 .../components/loaders/AiryLoader/index.tsx | 59 + .../loaders/InstallerLoader/index.module.scss | 20 + .../loaders/InstallerLoader/index.tsx | 63 + .../InstallerLoader/spinnerLoader.json | 1 + lib/typescript/components/loaders/index.ts | 2 + .../components/tooltip/index.module.scss | 1 + lib/typescript/components/tooltip/index.tsx | 35 +- lib/typescript/model/Components.ts | 3 +- lib/typescript/model/Connectors.ts | 9 +- lib/typescript/model/Source.ts | 1 + lib/typescript/translations/translations.ts | 7 + package.json | 2 + yarn.lock | 2056 +++++----- 38 files changed, 5351 insertions(+), 1250 deletions(-) create mode 100644 lib/typescript/assets/images/icons/amazonLexV2Logo.svg create mode 100644 lib/typescript/components/loaders/AiryLoader/data.json create mode 100644 lib/typescript/components/loaders/AiryLoader/index.module.scss create mode 100644 lib/typescript/components/loaders/AiryLoader/index.tsx create mode 100644 lib/typescript/components/loaders/InstallerLoader/index.module.scss create mode 100644 lib/typescript/components/loaders/InstallerLoader/index.tsx create mode 100644 lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json diff --git a/bazel.tsconfig.json b/bazel.tsconfig.json index 0836888a4c..d335b62517 100644 --- a/bazel.tsconfig.json +++ b/bazel.tsconfig.json @@ -16,6 +16,7 @@ "preserveConstEnums": true, "isolatedModules": false, "module": "commonjs", + "resolveJsonModule": true, "sourceMap": true, "jsx": "react", "paths": { diff --git a/frontend/control-center/BUILD b/frontend/control-center/BUILD index 0de7da3951..b191c90f77 100644 --- a/frontend/control-center/BUILD +++ b/frontend/control-center/BUILD @@ -30,6 +30,8 @@ ts_web_library( "@npm//@types/lodash-es", "@npm//@types/dom-mediacapture-record", "@npm//lodash-es", + "@npm//react-lottie", + "@npm//@types/react-lottie", "@npm//react", "@npm//react-router-dom", "@npm//redux", diff --git a/frontend/control-center/src/App.tsx b/frontend/control-center/src/App.tsx index f17139b061..b13e6dcbb6 100644 --- a/frontend/control-center/src/App.tsx +++ b/frontend/control-center/src/App.tsx @@ -4,7 +4,7 @@ import TopBar from './components/TopBar'; import Sidebar from './components/Sidebar'; import styles from './App.module.scss'; import {getClientConfig} from './actions/config'; -import {Navigate, Route, Routes} from 'react-router-dom'; +import {Navigate, Route, Routes, useLocation} from 'react-router-dom'; import {INBOX_ROUTE, CATALOG_ROUTE, CONNECTORS_ROUTE, ROOT_ROUTE, STATUS_ROUTE, WEBHOOKS_ROUTE} from './routes/routes'; import NotFound from './pages/NotFound'; import ConnectorsOutlet from './pages/Connectors/ConnectorsOutlet'; @@ -16,21 +16,41 @@ import Status from './pages/Status'; import Inbox from './pages/Inbox'; import ConnectorConfig from './pages/Connectors/ConnectorConfig'; import CatalogProductPage from './pages/Catalog/CatalogItemDetails'; +import {getConnectorsConfiguration, listChannels, listComponents} from './actions'; const mapDispatchToProps = { getClientConfig, + listChannels, + getConnectorsConfiguration, + listComponents, }; const connector = connect(null, mapDispatchToProps); const App = (props: ConnectedProps) => { + const location = useLocation(); + useEffect(() => { - props.getClientConfig(); + props.getClientConfig().catch((error: Error) => { + console.error(error); + }); if (localStorage.getItem('theme') === 'dark') { document.documentElement.setAttribute('data-theme', 'dark'); } }, []); + useEffect(() => { + props.listChannels().catch((error: Error) => { + console.error(error); + }); + props.getConnectorsConfiguration().catch((error: Error) => { + console.error(error); + }); + props.listComponents().catch((error: Error) => { + console.error(error); + }); + }, [location]); + return (
diff --git a/frontend/control-center/src/components/ChannelAvatar/index.tsx b/frontend/control-center/src/components/ChannelAvatar/index.tsx index 9b6f39ca90..1e13ede728 100644 --- a/frontend/control-center/src/components/ChannelAvatar/index.tsx +++ b/frontend/control-center/src/components/ChannelAvatar/index.tsx @@ -14,6 +14,7 @@ import {ReactComponent as CognigyAvatar} from 'assets/images/icons/cognigyLogo.s import {ReactComponent as RasaAvatar} from 'assets/images/icons/rasaLogo.svg'; import {ReactComponent as AmeliaAvatar} from 'assets/images/icons/ameliaLogo.svg'; import {ReactComponent as AmazonS3Avatar} from 'assets/images/icons/amazons3Logo.svg'; +import {ReactComponent as AmazonLexV2Avatar} from 'assets/images/icons/amazonLexV2Logo.svg'; import {ReactComponent as IbmWatsonAssistantAvatar} from 'assets/images/icons/ibmWatsonAssistantLogo.svg'; import {Channel, Source} from 'model'; @@ -79,6 +80,9 @@ export const getChannelAvatar = (source: string) => { case Source.amazons3: case 'Amazon S3': return ; + case Source.amazonLexV2: + case 'Amazon LEX V2': + return ; case Source.ibmWatsonAssistant: case 'IBM Watson Assistant': return ; diff --git a/frontend/control-center/src/components/Sidebar/index.tsx b/frontend/control-center/src/components/Sidebar/index.tsx index c8949b400b..32904d1eb5 100644 --- a/frontend/control-center/src/components/Sidebar/index.tsx +++ b/frontend/control-center/src/components/Sidebar/index.tsx @@ -4,7 +4,7 @@ import {useMatch} from 'react-router'; import {connect, ConnectedProps} from 'react-redux'; import {StateModel} from '../../reducers'; import {useCurrentComponentForSource} from '../../selectors'; -import {Source} from 'model'; +import {InstallationStatus, Source} from 'model'; import {CATALOG_ROUTE, CONNECTORS_ROUTE, INBOX_ROUTE, STATUS_ROUTE, WEBHOOKS_ROUTE} from '../../routes/routes'; import {ReactComponent as ConnectorsIcon} from 'assets/images/icons/gitMerge.svg'; @@ -27,7 +27,7 @@ const Sidebar = (props: SideBarProps) => { const {version, components} = props; const componentInfo = useCurrentComponentForSource(Source.webhooks); - const webhooksEnabled = componentInfo.installed; + const webhooksEnabled = componentInfo.installationStatus === InstallationStatus.installed; const inboxEnabled = components[Source.frontendInbox]?.enabled || false; const showLine = inboxEnabled || webhooksEnabled; diff --git a/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss b/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss index 16347deeb9..213a4e8110 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss +++ b/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss @@ -5,8 +5,6 @@ .catalogCard { width: 340px; height: 248px; - margin-bottom: 28px; - margin-right: 36px; padding: 0px 12px 0px 20px; display: flex; flex-direction: column; @@ -16,6 +14,9 @@ outline: 2px solid transparent; @include font-s; transition: all 0.1s; + z-index: -1; + position: relative; + pointer-events: all; &:hover { outline: 2px solid var(--color-airy-blue); @@ -24,6 +25,14 @@ } } +.installerLoaderWrapper { + position: relative; + z-index: 1; + &:hover { + z-index: 2; + } +} + .cardLogoTitleContainer { display: flex; align-items: flex-start; diff --git a/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx b/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx index 9ec1062f33..682b1428f4 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx +++ b/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx @@ -1,11 +1,11 @@ -import React, {useRef, useState} from 'react'; +import React, {Dispatch, SetStateAction, useEffect, useRef, useState} from 'react'; import {useNavigate} from 'react-router-dom'; import {useTranslation} from 'react-i18next'; import {connect, ConnectedProps} from 'react-redux'; import {StateModel} from '../../../reducers'; import {installComponent} from '../../../actions/catalog'; -import {ComponentInfo, ConnectorPrice, NotificationModel} from 'model'; -import {Button, NotificationComponent, SettingsModal, SmartButton} from 'components'; +import {ComponentInfo, ConnectorPrice, InstallationStatus, NotificationModel} from 'model'; +import {Button, NotificationComponent, SettingsModal, Tooltip} from 'components'; import {getChannelAvatar} from '../../../components/ChannelAvatar'; import {getCatalogProductRouteForComponent, getConnectedRouteForComponent} from '../../../services'; import {DescriptionComponent, getDescriptionSourceName} from '../../../components/Description'; @@ -14,13 +14,23 @@ import styles from './index.module.scss'; import NotifyMeModal from '../NotifyMeModal'; import {CONNECTORS_ROUTE} from '../../../routes/routes'; import {getMergedConnectors} from '../../../selectors'; +import {InstallerLoader} from 'components/loaders/InstallerLoader'; + +export type ObservationInstallStatus = { + pending: boolean; + name: string; + retries: number; +}; type CatalogCardProps = { componentInfo: ComponentInfo; + setObserveInstallStatus: Dispatch>; + showConfigureModal: string; + blockInstalling: boolean; + installStatus: InstallationStatus; } & ConnectedProps; const mapStateToProps = (state: StateModel) => ({ - component: state.data.catalog, connectors: getMergedConnectors(state), }); @@ -33,14 +43,21 @@ const connector = connect(mapStateToProps, mapDispatchToProps); export const availabilityFormatted = (availability: string) => availability.split(','); const CatalogCard = (props: CatalogCardProps) => { - const {component, connectors, componentInfo, installComponent} = props; + const { + connectors, + componentInfo, + installComponent, + setObserveInstallStatus, + showConfigureModal, + blockInstalling, + installStatus, + } = props; const hasConnectedChannels = connectors[componentInfo?.name].connectedChannels > 0; const isConfigured = connectors[componentInfo?.name].isConfigured; const isChannel = connectors[componentInfo?.name].isChannel; - const isInstalled = component[componentInfo?.name]?.installed; + const [isPending, setIsPending] = useState(installStatus === InstallationStatus.pending); const [isModalVisible, setIsModalVisible] = useState(false); const [isNotifyMeModalVisible, setIsNotifyMeModalVisible] = useState(false); - const [isPending, setIsPending] = useState(false); const [notification, setNotification] = useState(null); const [notifyMeNotification, setNotifyMeNotification] = useState(null); const [forceClose, setForceClose] = useState(false); @@ -55,17 +72,22 @@ const CatalogCard = (props: CatalogCardProps) => { //Commented until backend is ready for this!!! // const notifiedEmail = t('infoNotifyMe') + ` ${notified}`; + useEffect(() => { + showConfigureModal === componentInfo?.name && (setIsModalVisible(true), setIsPending(false)); + if (connectors[componentInfo?.name].installationStatus !== InstallationStatus.pending) { + setIsPending(false); + } + }, [showConfigureModal, connectors[componentInfo?.name].installationStatus]); + const openInstallModal = () => { setIsPending(true); installComponent({name: componentInfo.name}) .then(() => { - setNotification({show: true, successful: true, text: t('successfullyInstalled')}); - setIsModalVisible(true); + setObserveInstallStatus({pending: true, name: componentInfo?.name, retries: 0}); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedInstall')}); - }) - .finally(() => { + setObserveInstallStatus({pending: false, name: componentInfo?.name, retries: 0}); setIsPending(false); }); }; @@ -117,7 +139,7 @@ const CatalogCard = (props: CatalogCardProps) => { ); } - if (isInstalled) { + if (connectors[componentInfo?.name].installationStatus === InstallationStatus.installed) { return ( + } + hoverElementWidth={400} + direction="right" + position="absolute" + top={84} + left={100} + tooltipContent={t('tooltipInstallingQueue')} + /> + ) : ( + + )} + ); }; return ( <> -
-
-
- {getChannelAvatar(componentInfo.displayName)} - -
-
-

{componentInfo.displayName}

-

- {' '} - {t('categories')}: {componentInfo.category}{' '} -

-
-
- -
- {componentInfo.name && ( -

- -

- )} - -

- - {t('availableFor')}: -

-
-
- {componentInfo?.availableFor && - availabilityFormatted(componentInfo.availableFor).map((service: string) => ( - - ))} -
- {/* Commented until backend is ready for this!!! +
+ +
+
+
+ {getChannelAvatar(componentInfo.displayName)} + +
+
+

{componentInfo.displayName}

+

+ {' '} + {t('categories')}: {componentInfo.category}{' '} +

+
+
+
+ {componentInfo.name && ( +

+ +

+ )} + +

+ + {t('availableFor')}: +

+
+
+ {componentInfo?.availableFor && + availabilityFormatted(componentInfo.availableFor).map((service: string) => ( + + ))} +
+ {/* Commented until backend is ready for this!!! {componentInfo?.price === ConnectorPrice.requestAccess && (
{t('soon').toUpperCase()}
)} */} -
-
- - {isModalVisible && ( - } - wrapperClassName={styles.enableModalContainerWrapper} - containerClassName={styles.enableModalContainer} - title={`${componentInfo.displayName} ${t('installed')}`} - close={closeModal} - headerClassName={styles.headerModal} - > - - - )} +
+
+ + {isModalVisible && ( + } + wrapperClassName={styles.enableModalContainerWrapper} + containerClassName={styles.enableModalContainer} + title={`${componentInfo.displayName} ${t('installed')}`} + close={closeModal} + headerClassName={styles.headerModal} + > + + + )} + + {isNotifyMeModalVisible && ( + + )} +
+ +
- {isNotifyMeModalVisible && ( - - )} - {notification?.show && ( { info={notification.info} /> )} + {notifyMeNotification?.show && ( ({ component: state.data.catalog, + connectors: getMergedConnectors(state), }); const mapDispatchToProps = { installComponent, uninstallComponent, + listComponents, }; const connector = connect(mapStateToProps, mapDispatchToProps); @@ -32,7 +35,7 @@ interface LocationState { } const CatalogItemDetails = (props: ConnectedProps) => { - const {component, installComponent, uninstallComponent} = props; + const {component, connectors, installComponent, uninstallComponent, listComponents} = props; const location = useLocation(); const locationState = location.state as LocationState; const {componentInfo} = locationState; @@ -40,34 +43,69 @@ const CatalogItemDetails = (props: ConnectedProps) => { const [isModalVisible, setIsModalVisible] = useState(false); const [isNotifyMeModalVisible, setIsNotifyMeModalVisible] = useState(false); const [modal, setModal] = useState(null); - const [isPending, setIsPending] = useState(false); const [notification, setNotification] = useState(null); const [notifyMeNotification, setNotifyMeNotification] = useState(null); + const [pendingNotification, setPendingNotification] = useState(null); const [forceClose, setForceClose] = useState(false); + const [installStarted, setInstallStarted] = useState(false); + const [blockInstalling, setBlockInstalling] = useState(false); const notified = localStorage.getItem(`notified.${componentInfo.source}`); const {t} = useTranslation(); const notifiedEmail = t('infoNotifyMe') + ` ${notified}`; const navigate = useNavigate(); const NEW_COMPONENT_INSTALL_ROUTE = getNewChannelRouteForComponent(componentInfo.source); - const isInstalled = component[componentInfo?.name]?.installed; + const isInstalled = component[componentInfo?.name]?.installationStatus === InstallationStatus.installed; const uninstallText = t('uninstall') + ` ${componentInfo.displayName}`; const installText = `${componentInfo.displayName} ` + t('installed'); + const [retries, setRetries] = useState(0); + + useEffect(() => { + Object.values(connectors).map(connector => { + if (connector?.installationStatus === InstallationStatus.pending) { + setBlockInstalling(true); + componentInfo?.price !== ConnectorPrice.requestAccess && + setPendingNotification({show: true, successful: false, text: t('tooltipInstallingQueue'), info: true}); + } + }); + }, []); + + useEffect(() => { + installStarted && recallComponentsList(retries); + if (connectors[componentInfo?.name]?.installationStatus === InstallationStatus.uninstalled && retries > 0) { + setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); + } + if (connectors[componentInfo?.name]?.installationStatus === InstallationStatus.installed && retries > 0) { + setModal({type: ModalType.install, title: installText}); + setIsModalVisible(true); + } + }, [connectors[componentInfo?.name]?.installationStatus, installStarted, retries, setRetries]); + + const recallComponentsList = (retries: number) => { + const maxRetries = 15; + setTimeout(() => { + retries++; + setRetries(retries); + if ( + retries === maxRetries || + (connectors[componentInfo?.name]?.installationStatus !== InstallationStatus.pending && retries > 1) + ) { + setInstallStarted(false); + setRetries(0); + } else { + listComponents(); + } + }, 5000); + }; const openModalInstall = () => { if (!isInstalled) { - setIsPending(true); installComponent({name: componentInfo.name}) .then(() => { - setModal({type: ModalType.install, title: installText}); - setNotification({show: true, successful: true, text: t('successfullyInstalled')}); - setIsModalVisible(true); + setInstallStarted(true); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedInstall')}); - }) - .finally(() => { - setIsPending(false); }); } else { setModal({type: ModalType.uninstall, title: uninstallText}); @@ -80,17 +118,13 @@ const CatalogItemDetails = (props: ConnectedProps) => { }; const confirmUninstall = () => { - setIsPending(true); setIsModalVisible(false); uninstallComponent({name: `${componentInfo.name}`}) .then(() => { - setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); + setInstallStarted(true); }) .catch(() => { setNotification({show: true, successful: false, text: t('failedUninstall')}); - }) - .finally(() => { - setIsPending(false); }); }; @@ -163,8 +197,9 @@ const CatalogItemDetails = (props: ConnectedProps) => { } height={50} width={180} + disabled={blockInstalling} onClick={componentInfo?.price === ConnectorPrice.requestAccess ? handleNotifyMeClick : openModalInstall} - pending={isPending} + pending={connectors[componentInfo?.name]?.installationStatus === InstallationStatus.pending} styleVariant={ componentInfo?.price === ConnectorPrice.requestAccess ? notified @@ -286,6 +321,18 @@ const CatalogItemDetails = (props: ConnectedProps) => { info={notification.info} /> )} + {pendingNotification?.show && ( + + )} {notifyMeNotification?.show && ( { return { catalogList: Object.values(state.data.catalog), + connectors: getMergedConnectors(state), }; }; const mapDispatchToProps = { listComponents, - getConnectorsConfiguration, - listChannels, }; const connector = connect(mapStateToProps, mapDispatchToProps); const Catalog = (props: ConnectedProps) => { - const {catalogList, listComponents, getConnectorsConfiguration, listChannels} = props; + const {catalogList, connectors, listComponents} = props; const [orderedCatalogList, setOrderedCatalogList] = useState(catalogList); + const [observeInstallStatus, setObserveInstallStatus] = useState(null); + const [notification, setNotification] = useState(null); + const [showConfigureModal, setShowConfigureModal] = useState(''); + const [blockInstalling, setBlockInstalling] = useState(false); const {t} = useTranslation(); const catalogPageTitle = t('Catalog'); const [currentFilter, setCurrentFilter] = useState( @@ -36,18 +42,48 @@ const Catalog = (props: ConnectedProps) => { const sortByName = (a: ComponentInfo, b: ComponentInfo) => a?.displayName?.localeCompare(b?.displayName); useEffect(() => { - listChannels().catch((error: Error) => { - console.error(error); - }); - getConnectorsConfiguration().catch((error: Error) => { - console.error(error); - }); - listComponents().catch((error: Error) => { - console.error(error); - }); setPageTitle(catalogPageTitle); }, []); + useEffect(() => { + observeInstallStatus?.pending && recallComponentsList(observeInstallStatus?.retries); + + !observeInstallStatus && + Object.values(connectors).map(connector => { + connector.installationStatus === InstallationStatus.pending && + (setObserveInstallStatus({pending: true, name: connector.name, retries: 0}), + recallComponentsList(observeInstallStatus?.retries)); + }); + }, [observeInstallStatus, connectors[observeInstallStatus?.name]?.installationStatus]); + + const recallComponentsList = (retries: number) => { + connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.pending + ? setBlockInstalling(true) + : setBlockInstalling(false); + + if (connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.installed) { + setShowConfigureModal(observeInstallStatus?.name); + } + + if (connectors[observeInstallStatus?.name]?.installationStatus === InstallationStatus.uninstalled) { + setNotification({show: true, successful: true, text: t('successfullyUninstalled')}); + } + + const maxRetries = 15; + setTimeout(() => { + retries++; + setObserveInstallStatus({...observeInstallStatus, retries: retries}); + if ( + observeInstallStatus?.retries === maxRetries || + (connectors[observeInstallStatus?.name]?.installationStatus !== InstallationStatus.pending && retries > 1) + ) { + setObserveInstallStatus({...observeInstallStatus, pending: false}); + } else { + listComponents(); + } + }, 5000); + }; + useLayoutEffect(() => { if (query && currentFilter === FilterTypes.all) { const filteredCatalogByName = [...catalogList].filter((component: ComponentInfo) => @@ -56,10 +92,19 @@ const Catalog = (props: ConnectedProps) => { setOrderedCatalogList(filteredCatalogByName); } else { const sortedByInstalled = [...catalogList] - .filter((component: ComponentInfo) => component.installed && component.price !== ConnectorPrice.requestAccess) + .filter( + (component: ComponentInfo) => + component.installationStatus === InstallationStatus.installed && + component.price !== ConnectorPrice.requestAccess + ) .sort(sortByName); const sortedByUninstalled = [...catalogList] - .filter((component: ComponentInfo) => !component.installed && component.price !== ConnectorPrice.requestAccess) + .filter( + (component: ComponentInfo) => + (component.installationStatus === InstallationStatus.uninstalled || + component.installationStatus === InstallationStatus.pending) && + component.price !== ConnectorPrice.requestAccess + ) .sort(sortByName); const sortedByAccess = [...catalogList] .filter((component: ComponentInfo) => component.price === ConnectorPrice.requestAccess) @@ -101,27 +146,53 @@ const Catalog = (props: ConnectedProps) => { }, [catalogList, currentFilter, query]); return ( -
-
-

{catalogPageTitle}

- -
- -
- {orderedCatalogList && orderedCatalogList.length > 0 ? ( - orderedCatalogList.map((infoItem: ComponentInfo) => { - if (infoItem?.name && infoItem?.displayName) { - return ; - } - }) + <> +
+
+

{catalogPageTitle}

+ {catalogList.length > 0 && ( + + )} +
+ {catalogList.length > 0 ? ( +
+ {orderedCatalogList && orderedCatalogList.length > 0 ? ( + orderedCatalogList.map((infoItem: ComponentInfo) => { + if (infoItem?.name && infoItem?.displayName) { + return ( + + ); + } + }) + ) : ( +
+

{t('nothingFound')}

+ {t('noMatchingCatalogs')} +
+ )} +
) : ( -
-

{t('nothingFound')}

- {t('noMatchingCatalogs')} -
+ )}
-
+ {notification?.show && ( + + )} + ); }; diff --git a/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss b/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss index e5c69b73e4..bd01f34804 100644 --- a/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/ChannelCard/index.module.scss @@ -6,7 +6,7 @@ width: 260px; height: 100px; margin-bottom: 28px; - margin-right: 36px; + margin-right: 28px; display: flex; align-items: center; border: 1px solid var(--color-dark-elements-gray); diff --git a/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss b/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss index 08eb62d8d0..950af2a3a3 100644 --- a/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/InfoCard/index.module.scss @@ -6,7 +6,7 @@ width: 260px; height: 100px; margin-bottom: 28px; - margin-right: 36px; + margin-right: 28px; display: flex; flex-direction: column; align-items: flex-start; diff --git a/frontend/control-center/src/pages/Connectors/index.module.scss b/frontend/control-center/src/pages/Connectors/index.module.scss index 3cc830d2de..ee69411f73 100644 --- a/frontend/control-center/src/pages/Connectors/index.module.scss +++ b/frontend/control-center/src/pages/Connectors/index.module.scss @@ -8,7 +8,7 @@ padding: 32px; margin: 88px 1.5em 0 191px; height: calc(100vh - 88px); - overflow-y: scroll; + overflow-y: hidden; overflow-x: hidden; width: 100%; } diff --git a/frontend/control-center/src/pages/Connectors/index.tsx b/frontend/control-center/src/pages/Connectors/index.tsx index 62a1f3a7b8..c90923d26b 100644 --- a/frontend/control-center/src/pages/Connectors/index.tsx +++ b/frontend/control-center/src/pages/Connectors/index.tsx @@ -1,22 +1,15 @@ import React, {useEffect} from 'react'; import {connect, ConnectedProps} from 'react-redux'; -import {Connector, Source} from 'model'; +import {Connector, InstallationStatus, Source} from 'model'; import InfoCard from './InfoCard'; import {StateModel} from '../../reducers'; -import {listChannels, listComponents, getConnectorsConfiguration} from '../../actions'; import {setPageTitle} from '../../services/pageTitle'; import {EmptyStateConnectors} from './EmptyStateConnectors'; import {ChannelCard} from './ChannelCard'; -import {SimpleLoader} from 'components'; import {getComponentStatus} from '../../services'; import styles from './index.module.scss'; import {getMergedConnectors} from '../../selectors'; - -const mapDispatchToProps = { - listChannels, - getConnectorsConfiguration, - listComponents, -}; +import {AiryLoader} from 'components/loaders/AiryLoader'; const mapStateToProps = (state: StateModel) => { return { @@ -24,12 +17,15 @@ const mapStateToProps = (state: StateModel) => { }; }; -const connector = connect(mapStateToProps, mapDispatchToProps); +const connector = connect(mapStateToProps, null); const Connectors = (props: ConnectedProps) => { - const {connectors, listChannels, getConnectorsConfiguration, listComponents} = props; + const {connectors} = props; const installedConnectors = Object.values(connectors).filter( - (connector: Connector) => connector.isInstalled && connector.source !== Source.webhooks && connector.price + (connector: Connector) => + connector.installationStatus === InstallationStatus.installed && + connector.source !== Source.webhooks && + connector.price ); const hasAvailableConnectors = Object.values(connectors).filter((connector: Connector) => connector.source !== Source.webhooks && connector.price) @@ -40,15 +36,6 @@ const Connectors = (props: ConnectedProps) => { const sortByName = (a: Connector, b: Connector) => a?.displayName?.localeCompare(b?.displayName); useEffect(() => { - listChannels().catch((error: Error) => { - console.error(error); - }); - getConnectorsConfiguration().catch((error: Error) => { - console.error(error); - }); - listComponents().catch((error: Error) => { - console.error(error); - }); setPageTitle(pageTitle); }, []); @@ -57,11 +44,12 @@ const Connectors = (props: ConnectedProps) => {

Connectors

- {!hasAvailableConnectors && }
- {!hasInstalledComponents ? ( + {!hasAvailableConnectors ? ( + + ) : !hasInstalledComponents ? ( ) : ( <> @@ -73,7 +61,7 @@ const Connectors = (props: ConnectedProps) => { componentInfo={connector} componentStatus={getComponentStatus( connector.isHealthy, - connector.isInstalled, + connector.installationStatus === InstallationStatus.installed, connector.isConfigured, connector.isEnabled )} @@ -88,7 +76,7 @@ const Connectors = (props: ConnectedProps) => { componentInfo={connector} componentStatus={getComponentStatus( connector.isHealthy, - connector.isInstalled, + connector.installationStatus === InstallationStatus.installed, connector.isConfigured, connector.isEnabled )} diff --git a/frontend/control-center/src/pages/Status/index.tsx b/frontend/control-center/src/pages/Status/index.tsx index 6da03d4216..0f67580c5e 100644 --- a/frontend/control-center/src/pages/Status/index.tsx +++ b/frontend/control-center/src/pages/Status/index.tsx @@ -7,6 +7,7 @@ import {ReactComponent as RefreshIcon} from 'assets/images/icons/refreshIcon.svg import {setPageTitle} from '../../services/pageTitle'; import {useTranslation} from 'react-i18next'; import styles from './index.module.scss'; +import {AiryLoader} from 'components/loaders/AiryLoader'; const mapDispatchToProps = { getClientConfig, @@ -71,33 +72,37 @@ const Status = (props: ConnectedProps) => { {lastRefresh}
-
-

{t('componentName')}

-

{t('healthStatus')}

- -

{t('enabled')}

-
- -
-
- {Object.entries(catalog).length > 0 && - components.map((component, index) => { - const catalogItem = catalog[component[0]]; - return ( - - ); - })} -
+
+ {components.map((component, index) => { + const catalogItem = catalog[component[0]]; + return ( + + ); + })} +
+ + ) : ( + + )} ); }; diff --git a/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss b/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss index 4842abd201..39684b4f2b 100644 --- a/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss +++ b/frontend/control-center/src/pages/Webhooks/EmptyState/index.module.scss @@ -6,7 +6,7 @@ justify-content: center; align-items: center; width: 100%; - height: 100%; + height: calc(100% - 88px); } .contentContainer { diff --git a/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx b/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx index 41d6bb83af..f9bebebdb8 100644 --- a/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx +++ b/frontend/control-center/src/pages/Webhooks/EmptyState/index.tsx @@ -1,4 +1,3 @@ -import {ContentWrapper} from 'components/wrapper/ContentWrapper'; import React, {Dispatch, SetStateAction} from 'react'; import styles from './index.module.scss'; import {ReactComponent as SearchIcon} from 'assets/images/icons/search.svg'; @@ -13,25 +12,19 @@ export const EmptyState = (props: EmptyStateProps) => { const {t} = useTranslation(); return ( - -
-
- -
-

{t('noWebhooks')}

- - {t('noWebhooksText')} - setNewWebhook(true)} className={styles.subscribeButton}> - {t('subscribe')} - - -
+
+
+
+
- } - /> +

{t('noWebhooks')}

+ + {t('noWebhooksText')} + setNewWebhook(true)} className={styles.subscribeButton}> + {t('subscribe')} + + +
+
); }; diff --git a/frontend/control-center/src/pages/Webhooks/index.tsx b/frontend/control-center/src/pages/Webhooks/index.tsx index fbda3cee18..b1cd22b846 100644 --- a/frontend/control-center/src/pages/Webhooks/index.tsx +++ b/frontend/control-center/src/pages/Webhooks/index.tsx @@ -13,6 +13,7 @@ import styles from './index.module.scss'; import SubscriptionModal from './SubscriptionModal'; import WebhooksListItem from './WebhooksListItem'; import {NotificationModel} from 'model'; +import {AiryLoader} from 'components/loaders/AiryLoader'; type WebhooksProps = {} & ConnectedProps; @@ -34,6 +35,7 @@ const Webhooks = (props: WebhooksProps) => { const [isLoading, setIsLoading] = useState(false); const [errorOccurred, setErrorOccurred] = useState(false); const [notification, setNotification] = useState(null); + const [dataFetched, setDataFetched] = useState(false); const {t} = useTranslation(); useEffect(() => { @@ -42,9 +44,13 @@ const Webhooks = (props: WebhooksProps) => { useEffect(() => { webhooks.length === 0 && - listWebhooks().catch((error: Error) => { - console.error(error); - }); + listWebhooks() + .then(() => { + setDataFetched(true); + }) + .catch((error: Error) => { + console.error(error); + }); }, [webhooks]); const handleNotification = (show: boolean, error: boolean) => { @@ -115,27 +121,23 @@ const Webhooks = (props: WebhooksProps) => { /> )} - {webhooks.length === 0 ? ( - - ) : ( - <> - {notification?.show && ( - - )} -
-
-
-

Webhooks

- -
-
+
+
+
+

Webhooks

+ {webhooks.length > 0 && ( + + )} +
+
+ {webhooks.length === 0 && !dataFetched ? ( + + ) : webhooks.length === 0 ? ( + + ) : ( + <>

URL

Name

@@ -154,9 +156,17 @@ const Webhooks = (props: WebhooksProps) => { /> ))}
-
- - )} + {notification?.show && ( + + )} + + )} +
); }; diff --git a/frontend/control-center/src/reducers/data/catalog/index.ts b/frontend/control-center/src/reducers/data/catalog/index.ts index e6ded10580..65d0cd712c 100644 --- a/frontend/control-center/src/reducers/data/catalog/index.ts +++ b/frontend/control-center/src/reducers/data/catalog/index.ts @@ -22,7 +22,7 @@ export default function connectorsReducer(state = defaultState, action: Action): ...state, [action.payload.name]: { ...state[action.payload.name], - installed: true, + installationStatus: 'pending', }, }; } @@ -31,7 +31,7 @@ export default function connectorsReducer(state = defaultState, action: Action): ...state, [action.payload.name]: { ...state[action.payload.name], - installed: false, + installationStatus: 'pending', }, }; } diff --git a/frontend/control-center/src/selectors/connectors.ts b/frontend/control-center/src/selectors/connectors.ts index 8e78f7b3c7..a3acb0884b 100644 --- a/frontend/control-center/src/selectors/connectors.ts +++ b/frontend/control-center/src/selectors/connectors.ts @@ -1,6 +1,6 @@ import {StateModel} from '../reducers'; import {useSelector} from 'react-redux'; -import {Channel, Connector, ConnectorName, ConnectorsModel, Source} from 'model'; +import {Channel, Connector, ConnectorName, ConnectorsModel, InstallationStatus, Source} from 'model'; import {createSelector} from 'reselect'; import {merge} from 'lodash-es'; import {allChannelsConnected} from './channels'; @@ -31,7 +31,7 @@ export const getMergedConnectors = createSelector( const channelsBySource = (Source: Source) => channels.filter((channel: Channel) => channel.source === Source); const connectedChannels = channelsBySource(catalog[1].source).length; const isChannel = catalog[1].isChannel?.includes('true') ?? false; - const isInstalled = catalog[1].installed; + const isInstalled = catalog[1].installationStatus === InstallationStatus.installed; const price = catalog[1].price; const source = catalog[1].source; const name = catalog[0]; @@ -40,7 +40,7 @@ export const getMergedConnectors = createSelector( structuredCatalog = { name: name, displayName: displayName, - isInstalled: isInstalled, + installationStatus: catalog[1].installationStatus, isConfigured: !isInstalled && false, isHealthy: !isInstalled && false, isEnabled: !isInstalled && false, diff --git a/lib/typescript/assets/images/icons/amazonLexV2Logo.svg b/lib/typescript/assets/images/icons/amazonLexV2Logo.svg new file mode 100644 index 0000000000..abfdf8462b --- /dev/null +++ b/lib/typescript/assets/images/icons/amazonLexV2Logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/typescript/components/BUILD b/lib/typescript/components/BUILD index 1a2284eeed..78cf999e51 100644 --- a/lib/typescript/components/BUILD +++ b/lib/typescript/components/BUILD @@ -11,11 +11,13 @@ ts_web_library( "//lib/typescript/types", "@npm//@types/node", "@npm//@types/react", + "@npm//@types/react-lottie", "@npm//i18next", "@npm//lodash-es", "@npm//react", "@npm//react-autosize-textarea", "@npm//react-i18next", + "@npm//react-lottie", "@npm//react-modal", "@npm//react-router-dom", ], diff --git a/lib/typescript/components/alerts/NotificationComponent/index.module.scss b/lib/typescript/components/alerts/NotificationComponent/index.module.scss index 935a41cc36..3ca058d584 100644 --- a/lib/typescript/components/alerts/NotificationComponent/index.module.scss +++ b/lib/typescript/components/alerts/NotificationComponent/index.module.scss @@ -80,14 +80,17 @@ .translateYAnimFade { animation-name: translateYFade; animation-timing-function: ease-in-out; + animation-fill-mode: forwards; } .translateYAnimSticky { animation-name: translateYSticky; animation-timing-function: ease-in-out; + animation-fill-mode: forwards; } .translateYAnimStickyClose { animation-name: translateYStickyClose; animation-timing-function: ease-in-out; + animation-fill-mode: forwards; } diff --git a/lib/typescript/components/loaders/AiryLoader/data.json b/lib/typescript/components/loaders/AiryLoader/data.json new file mode 100644 index 0000000000..cdaa3eb74f --- /dev/null +++ b/lib/typescript/components/loaders/AiryLoader/data.json @@ -0,0 +1,3618 @@ + { + "v": "5.5.2", + "fr": 25, + "ip": 0, + "op": 150, + "w": 800, + "h": 600, + "nm": "main", + "ddd": 0, + "assets": [ + { + "id": "comp_0", + "layers": [ + { + "ddd": 0, + "ind": 2, + "ty": 0, + "nm": "A", + "refId": "comp_1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 400, + 300, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 400, + 300, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "w": 800, + "h": 600, + "ip": 0, + "op": 153, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Background – logo 4", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 400.048, + 297.666, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 156.707, + 157.891, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 89.013, + -5.356 + ], + [ + 6.654, + -75.723 + ], + [ + -9.549, + -22.526 + ], + [ + 0.638, + -2.729 + ], + [ + 0, + 0 + ], + [ + -0.32, + 0.014 + ], + [ + 0, + 0 + ], + [ + -2.067, + -1.479 + ], + [ + -34.314, + 0.411 + ], + [ + 1.404, + 85.166 + ] + ], + "o": [ + [ + -75.877, + 4.565 + ], + [ + -2.328, + 26.501 + ], + [ + 1.094, + 2.58 + ], + [ + 0, + 0 + ], + [ + -0.073, + 0.311 + ], + [ + 0, + 0 + ], + [ + 2.538, + -0.114 + ], + [ + 25.853, + 18.504 + ], + [ + 85.17, + -1.02 + ], + [ + -1.444, + -87.511 + ] + ], + "v": [ + [ + -9.365, + -154.619 + ], + [ + -154.081, + -13.896 + ], + [ + -142.446, + 60.358 + ], + [ + -141.689, + 68.508 + ], + [ + -155.108, + 128.497 + ], + [ + -154.616, + 129.089 + ], + [ + -96.912, + 123.898 + ], + [ + -89.829, + 126.045 + ], + [ + 2.113, + 154.895 + ], + [ + 155.101, + -2.606 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "mm", + "mm": 4, + "nm": "Merge Paths 1", + "mn": "ADBE Vector Filter - Merge", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.294000004787, + 0.702000038297, + 0.991999966491, + 1 + ], + "ix": 4 + }, + "o": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 72, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 79, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 94, + "s": [ + 100 + ] + }, + { + "t": 101, + "s": [ + 0 + ] + } + ], + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 156.659, + 160.225 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 54, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 74, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 109, + "s": [ + 100 + ] + }, + { + "t": 121, + "s": [ + 0 + ] + } + ], + "ix": 1 + }, + "e": { + "a": 0, + "k": 0, + "ix": 2 + }, + "o": { + "a": 0, + "k": 0, + "ix": 3 + }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.29411765933, + 0.701960802078, + 0.992156922817, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 49, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 66, + "s": [ + 2 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 76, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 94, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 104, + "s": [ + 2 + ] + }, + { + "t": 121, + "s": [ + 0 + ] + } + ], + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 44, + "op": 809, + "st": 44, + "bm": 0 + } + ] + }, + { + "id": "comp_1", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "part 3", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 0, + "s": [ + -33 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 13, + "s": [ + 15 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 31, + "s": [ + 25 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + 25 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 49, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 114.833, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 123.167, + "s": [ + 25 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 129.833, + "s": [ + 25 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 140.667, + "s": [ + 15 + ] + }, + { + "t": 151.5, + "s": [ + -33 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 37, + "s": [ + 400, + 300, + 0 + ], + "to": [ + -6.271, + -5, + 0 + ], + "ti": [ + 6.271, + 5, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 49, + "s": [ + 362.375, + 270, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 0 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 110, + "s": [ + 362.375, + 270, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 114, + "s": [ + 362.375, + 270, + 0 + ], + "to": [ + 6.271, + 5, + 0 + ], + "ti": [ + -6.271, + -5, + 0 + ] + }, + { + "t": 124, + "s": [ + 400, + 300, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 31.146, + 43.689, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 0, + "s": [ + 0, + 0, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 16, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 110, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 1, + 1, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 137.333, + "s": [ + 100, + 100, + 100 + ] + }, + { + "t": 150.6669921875, + "s": [ + 0, + 0, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 30.896, + 18.648 + ], + [ + -30.896, + 43.439 + ], + [ + 5.988, + -43.439 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 8, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 16, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 110, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 144, + "s": [ + 100 + ] + }, + { + "t": 150.6669921875, + "s": [ + 0 + ] + } + ], + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 31.146, + 43.689 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 0, + "s": [ + 100 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 20, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 137.333, + "s": [ + 0 + ] + }, + { + "t": 154, + "s": [ + 100 + ] + } + ], + "ix": 1 + }, + "e": { + "a": 0, + "k": 100, + "ix": 2 + }, + "o": { + "a": 0, + "k": 0, + "ix": 3 + }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.258823543787, + 0.666666686535, + 0.992156863213, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 4, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 0, + "op": 765, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "part 4", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 23, + "s": [ + -40 + ] + }, + { + "i": { + "x": [ + 0.004 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + -13 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 53, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.004 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.996 + ], + "y": [ + 0 + ] + }, + "t": 117.333, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 129, + "s": [ + -13 + ] + }, + { + "t": 142.3330078125, + "s": [ + -40 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.296, + "y": 0 + }, + "t": 23, + "s": [ + 398.603, + 302.839, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.428, + "y": 0.267 + }, + "t": 34, + "s": [ + 307.546, + 342.236, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 53, + "s": [ + 435.046, + 291.736, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 0 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 110, + "s": [ + 435.046, + 291.736, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.572, + "y": 0.733 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 117.333, + "s": [ + 435.046, + 291.736, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.704, + "y": 1 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 133.167, + "s": [ + 307.546, + 342.236, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "t": 142.3330078125, + "s": [ + 398.603, + 302.839, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 61.591, + 98.404, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1.063, + 1.063, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 20, + "s": [ + 0, + 0, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 39, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 3.067, + 3.067, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 123, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 1, + 1, + 0.333 + ], + "y": [ + -0.063, + -0.063, + 0 + ] + }, + "t": 128.167, + "s": [ + 100, + 100, + 100 + ] + }, + { + "t": 144, + "s": [ + 0, + 0, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 61.342, + 76.983 + ], + [ + 8.924, + 98.153 + ], + [ + -61.342, + -76.985 + ], + [ + -8.925, + -98.153 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 61.591, + 98.404 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.258823529412, + 0.666666666667, + 0.992156922583, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 4, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 20, + "op": 785, + "st": 20, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Part 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 24, + "s": [ + -65 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + 35 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 50, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 119, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 128.167, + "s": [ + 35 + ] + }, + { + "t": 140.6669921875, + "s": [ + -65 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 24, + "s": [ + 399.08, + 301.932, + 0 + ], + "to": [ + -11.447, + -17.333, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 40, + "s": [ + 330.401, + 197.932, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 50, + "s": [ + 383.984, + 345.641, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 0 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 110, + "s": [ + 383.984, + 345.641, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 119, + "s": [ + 383.984, + 345.641, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 127.333, + "s": [ + 330.401, + 197.932, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + -11.447, + -17.333, + 0 + ] + }, + { + "t": 140.6669921875, + "s": [ + 399.08, + 301.932, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 50.694, + 47.891, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 19, + "s": [ + 0, + 0, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 39, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 110, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 1, + 1, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 127.333, + "s": [ + 100, + 100, + 100 + ] + }, + { + "t": 144, + "s": [ + 0, + 0, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 50.444, + 47.641 + ], + [ + -50.444, + -22.526 + ], + [ + 12.218, + -47.641 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 50.694, + 47.891 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.258823529412, + 0.666666666667, + 0.992156922583, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 4, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 20, + "op": 785, + "st": 20, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "part 1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 18, + "s": [ + -48 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 39, + "s": [ + 26 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 53, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0 + ] + }, + "t": 110, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 114.833, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 1 + ], + "y": [ + 0 + ] + }, + "t": 126.5, + "s": [ + 26 + ] + }, + { + "t": 144, + "s": [ + -48 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 20, + "s": [ + 398.596, + 301.788, + 0 + ], + "to": [ + 11.833, + -5.798, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 1 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 36, + "s": [ + 469.596, + 267, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 53, + "s": [ + 334.221, + 354.625, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0, + "y": 0 + }, + "o": { + "x": 0.167, + "y": 0.167 + }, + "t": 110, + "s": [ + 334.221, + 354.625, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.833, + "y": 0.833 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 116.5, + "s": [ + 334.221, + 354.625, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 1, + "y": 0 + }, + "t": 130.667, + "s": [ + 469.596, + 267, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 11.833, + -5.798, + 0 + ] + }, + { + "t": 144, + "s": [ + 398.596, + 301.788, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 31.548, + 25.807, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 16, + "s": [ + 0, + 0, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 39, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0, + 0, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 110, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 1, + 1, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 126.5, + "s": [ + 100, + 100, + 100 + ] + }, + { + "t": 145.6669921875, + "s": [ + 0, + 0, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 31.298, + 1.327 + ], + [ + -31.298, + 25.557 + ], + [ + -8.792, + -25.557 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 31.548, + 25.807 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [ + 0.258823529412, + 0.666666666667, + 0.992156922583, + 1 + ], + "ix": 3 + }, + "o": { + "a": 0, + "k": 100, + "ix": 4 + }, + "w": { + "a": 0, + "k": 4, + "ix": 5 + }, + "lc": 1, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + } + ], + "ip": 17, + "op": 782, + "st": 17, + "bm": 0 + } + ] + } + ], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 0, + "nm": "logo-loading", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 400, + 300, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 400, + 300, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "w": 800, + "h": 600, + "ip": 0, + "op": 765, + "st": 0, + "bm": 0 + } + ], + "markers": [] +} \ No newline at end of file diff --git a/lib/typescript/components/loaders/AiryLoader/index.module.scss b/lib/typescript/components/loaders/AiryLoader/index.module.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/typescript/components/loaders/AiryLoader/index.tsx b/lib/typescript/components/loaders/AiryLoader/index.tsx new file mode 100644 index 0000000000..5546964084 --- /dev/null +++ b/lib/typescript/components/loaders/AiryLoader/index.tsx @@ -0,0 +1,59 @@ +import React from 'react'; +import Lottie from 'react-lottie'; +import animationData from './data.json'; + +type AiryLoaderProps = { + height?: number; + width?: number; + loop?: boolean; + autoplay?: boolean; + position?: 'absolute' | 'relative'; + top?: number; + right?: number; + bottom?: number; + left?: number; +}; + +export const AiryLoader = (props: AiryLoaderProps) => { + const {height, width, loop, autoplay, position, top, right, bottom, left} = props; + const margin = 88; + + const defaultOptions = { + loop: loop || true, + autoplay: autoplay || true, + animationData: animationData, + rendererSettings: { + preserveAspectRatio: 'xMidYMid slice', + }, + }; + + return ( +
+ +
+ ); +}; diff --git a/lib/typescript/components/loaders/InstallerLoader/index.module.scss b/lib/typescript/components/loaders/InstallerLoader/index.module.scss new file mode 100644 index 0000000000..8322e02713 --- /dev/null +++ b/lib/typescript/components/loaders/InstallerLoader/index.module.scss @@ -0,0 +1,20 @@ +.container { + background: transparent; + pointer-events: none; +} + +.containerInstalling { + display: flex; + align-items: center; + justify-content: center; + background: rgba($color: #000000, $alpha: 0.3); + pointer-events: all; +} + +.loader { + display: none; +} + +.loaderInstalling { + position: absolute; +} diff --git a/lib/typescript/components/loaders/InstallerLoader/index.tsx b/lib/typescript/components/loaders/InstallerLoader/index.tsx new file mode 100644 index 0000000000..bdb886c4f7 --- /dev/null +++ b/lib/typescript/components/loaders/InstallerLoader/index.tsx @@ -0,0 +1,63 @@ +import React from 'react'; +import styles from './index.module.scss'; +import Lottie from 'react-lottie'; +import animationData from './spinnerLoader.json'; + +type InstallerLoaderProps = { + children?: React.ReactNode; + marginTop?: number; + marginRight?: number; + marginBottom?: number; + marginLeft?: number; + borderRadius?: number; + installing: boolean; + height?: number; + width?: number; + loop?: boolean; + autoplay?: boolean; +}; + +export const InstallerLoader = (props: InstallerLoaderProps) => { + const { + children, + marginTop, + marginRight, + marginBottom, + marginLeft, + borderRadius, + installing, + height, + width, + loop, + autoplay, + } = props; + + const defaultOptions = { + loop: loop || true, + autoplay: autoplay || true, + animationData: animationData, + rendererSettings: { + preserveAspectRatio: 'xMidYMid slice', + }, + }; + + return ( +
+ {installing && ( +
+ +
+ )} + {children} +
+ ); +}; diff --git a/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json b/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json new file mode 100644 index 0000000000..69ce9ae4c9 --- /dev/null +++ b/lib/typescript/components/loaders/InstallerLoader/spinnerLoader.json @@ -0,0 +1 @@ +{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.21","a":"","k":"","d":"","tc":""},"fr":60,"ip":0,"op":90,"w":246,"h":246,"nm":"loader for public","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","parent":2,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":90,"s":[360]}],"ix":10},"p":{"a":0,"k":[3.002,-217.775,0],"ix":2},"a":{"a":0,"k":[3.002,-217.775,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[239.598,239.598],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":28,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.002,-217.775],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44.25,"s":[0]},{"t":90,"s":[60]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[10]},{"t":44.25,"s":[70]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":90,"s":[144]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"color","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":360,"ix":10},"p":{"a":0,"k":[123,123,0],"ix":2},"a":{"a":0,"k":[3.002,-217.775,0],"ix":1},"s":{"a":0,"k":[89.983,89.983,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[239.598,239.598],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"gs","o":{"a":0,"k":100,"ix":9},"w":{"a":0,"k":32,"ix":10},"g":{"p":3,"k":{"a":0,"k":[0,0.418,0.922,0.954,0.5,0.43,0.796,0.97,1,0.441,0.669,0.986],"ix":8}},"s":{"a":0,"k":[-118.969,-118.703],"ix":4},"e":{"a":0,"k":[122.126,120.78],"ix":5},"t":1,"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":13},"bm":0,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3.002,-217.775],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/lib/typescript/components/loaders/index.ts b/lib/typescript/components/loaders/index.ts index 39d4fb6b4b..1b2b78e05b 100644 --- a/lib/typescript/components/loaders/index.ts +++ b/lib/typescript/components/loaders/index.ts @@ -1 +1,3 @@ export * from './SimpleLoader'; +export * from './InstallerLoader'; +export * from './AiryLoader'; diff --git a/lib/typescript/components/tooltip/index.module.scss b/lib/typescript/components/tooltip/index.module.scss index ef727c266a..456d501db3 100644 --- a/lib/typescript/components/tooltip/index.module.scss +++ b/lib/typescript/components/tooltip/index.module.scss @@ -65,6 +65,7 @@ padding: 4px 6px; color: var(--color-text-contrast); position: relative; + z-index: 4; } .hoverElement:hover ~ .tooltipContent.top { diff --git a/lib/typescript/components/tooltip/index.tsx b/lib/typescript/components/tooltip/index.tsx index b0f0329a24..66f2d1f98f 100644 --- a/lib/typescript/components/tooltip/index.tsx +++ b/lib/typescript/components/tooltip/index.tsx @@ -8,14 +8,31 @@ type TooltipProps = { hoverElementWidth: number; tooltipContent: string; direction: 'top' | 'right' | 'bottom' | 'left' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'; + position?: 'absolute' | 'relative'; + top?: number; + right?: number; + bottom?: number; + left?: number; navigateTo?: string; }; export const Tooltip = (props: TooltipProps) => { - const {hoverElement, hoverElementHeight, hoverElementWidth, tooltipContent, direction, navigateTo} = props; + const { + hoverElement, + hoverElementHeight, + hoverElementWidth, + tooltipContent, + direction, + position, + navigateTo, + top, + right, + bottom, + left, + } = props; const navigate = useNavigate(); - const left = direction === 'bottomLeft' || direction === 'topLeft'; - const right = direction === 'bottomRight' || direction === 'topRight'; + const leftDirection = direction === 'bottomLeft' || direction === 'topLeft'; + const rightDirection = direction === 'bottomRight' || direction === 'topRight'; const margin = hoverElementWidth + 5; const handleOnClick = (event: React.MouseEvent) => { @@ -37,7 +54,17 @@ export const Tooltip = (props: TooltipProps) => {

{tooltipContent} diff --git a/lib/typescript/model/Components.ts b/lib/typescript/model/Components.ts index 689a85044b..7ddd5a5975 100644 --- a/lib/typescript/model/Components.ts +++ b/lib/typescript/model/Components.ts @@ -1,3 +1,4 @@ +import {InstallationStatus} from './Connectors'; import {Source} from './Source'; export interface Components { @@ -11,13 +12,13 @@ export interface Components { export interface ComponentInfo { displayName: string; name: string; - installed: boolean; availableFor: string; description: string; category: string; price: string; docs: string; source: Source; + installationStatus: InstallationStatus; isChannel?: string; configurationValues?: string; } diff --git a/lib/typescript/model/Connectors.ts b/lib/typescript/model/Connectors.ts index 8e24fd2024..68fec2bf78 100644 --- a/lib/typescript/model/Connectors.ts +++ b/lib/typescript/model/Connectors.ts @@ -1,6 +1,7 @@ import {Source} from './Source'; export enum ConnectorName { + amazonLexV2 = 'amazon-lex-v2-connector', apiAdmin = 'api-admin', apiCommunication = 'api-communication', apiContacts = 'api-contacts', @@ -25,6 +26,12 @@ export enum ConnectorName { zendenkConnector = 'zendesk-connector', } +export enum InstallationStatus { + installed = 'installed', + pending = 'pending', + uninstalled = 'uninstalled', +} + export enum ConnectorPrice { free = 'Free', paid = 'Paid', @@ -34,7 +41,7 @@ export enum ConnectorPrice { export type Connector = { name?: string; displayName?: string; - isInstalled?: boolean; + installationStatus?: InstallationStatus; isEnabled?: boolean; isHealthy?: boolean; isConfigured?: boolean; diff --git a/lib/typescript/model/Source.ts b/lib/typescript/model/Source.ts index 0656856d6b..19ed6ce909 100644 --- a/lib/typescript/model/Source.ts +++ b/lib/typescript/model/Source.ts @@ -19,6 +19,7 @@ export enum Source { frontendInbox = 'frontend-inbox', ibmWatsonAssistant = 'ibmWatsonAssistant', amazons3 = 'amazons3', + amazonLexV2 = 'amazonLexV2', } export const prettifySource = (source: string) => diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index ee042744e8..b4aa9c5f12 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -386,6 +386,9 @@ const resources = { //IBM Watson Assistant ibmDescription: 'IBM Watson Assistant uses artificial intelligence that understands customers.', + //Amazon Lex V2 + amazonLexV2Description: 'A web service for building conversational interface for apps using voice and text.', + //Amazon S3 amazons3Description: 'Amazon Simple Storage Service (Amazon S3) is an object storage service.', @@ -482,6 +485,7 @@ const resources = { updateSuccessfulConfiguration: 'Configuration successful updated', failedConfiguration: 'Applying configuration failed', updateFailedConfiguration: 'Updating configuration failed', + tooltipInstallingQueue: 'Please wait for other connectors to be installed/uninstalled', //Request Access comingSoon: 'Coming Soon', @@ -1047,6 +1051,7 @@ const resources = { updateSuccessfulConfiguration: 'Konfiguration erfolgreich aktualisiert', failedConfiguration: 'Anwenden der Konfiguration fehlgeschlagen', updateFailedConfiguration: 'Aktualisierung der Konfiguration fehlgeschlagen', + tooltipInstallingQueue: 'Bitte warten Sie, bis andere Connector installiert/deinstalliert sind', //Request Access @@ -1601,6 +1606,7 @@ const resources = { updateSuccessfulConfiguration: 'Configuration mise à jour avec succès', failedConfiguration: 'La configuration a échoué', updateFailedConfiguration: 'Échec de la mise à jour de la configuration', + tooltipInstallingQueue: `Veuillez attendre que d'autres connecteurs soient installés/désinstallés.`, //Request Access comingSoon: 'Prochainement', @@ -2162,6 +2168,7 @@ const resources = { updateSuccessfulConfiguration: 'Configuración actualizada con éxito', failedConfiguration: 'Fallo en la aplicación de la configuración', updateFailedConfiguration: 'Fallo en la actualización de la configuración', + tooltipInstallingQueue: 'Espere a que se instalen/desinstalen otros conectores', //Request Access comingSoon: 'Próximamente', diff --git a/package.json b/package.json index 613cf07ce9..b84911af29 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,8 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/user-event": "^14.4.3", "@types/jest": "^28.1.7", + "react-lottie": "^1.2.3", + "@types/react-lottie": "^1.2.6", "audio-recorder-polyfill": "^0.4.1", "camelcase-keys": "^8.0.2", "core-js": "3.25.5", diff --git a/yarn.lock b/yarn.lock index c3d0d8fe32..72f3b1ed21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,12 +29,12 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.3", "@babel/compat-data@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" - integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.4", "@babel/compat-data@^7.20.0": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" + integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== -"@babel/core@7.19.3", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.5": +"@babel/core@7.19.3": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== @@ -55,12 +55,33 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.19.3", "@babel/generator@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" - integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f" + integrity sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg== dependencies: - "@babel/types" "^7.19.3" + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.6" + "@babel/helper-compilation-targets" "^7.19.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helpers" "^7.19.4" + "@babel/parser" "^7.19.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/generator@^7.19.3", "@babel/generator@^7.19.6", "@babel/generator@^7.20.1", "@babel/generator@^7.7.2": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.1.tgz#ef32ecd426222624cbd94871a7024639cf61a9fa" + integrity sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg== + dependencies: + "@babel/types" "^7.20.0" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -72,45 +93,37 @@ "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a" - integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" - integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" + integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== dependencies: - "@babel/compat-data" "^7.19.3" + "@babel/compat-data" "^7.20.0" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" - integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b" + integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" - integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" - -"@babel/helper-create-regexp-features-plugin@^7.19.0": +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== @@ -130,11 +143,6 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" - integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== - "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" @@ -147,23 +155,7 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" - integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-function-name@^7.19.0": +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== @@ -178,13 +170,6 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" - integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== - dependencies: - "@babel/types" "^7.18.6" - "@babel/helper-member-expression-to-functions@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" @@ -199,19 +184,19 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0", "@babel/helper-module-transforms@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz#6c52cc3ac63b70952d33ee987cbee1c9368b533f" + integrity sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.19.4" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -220,22 +205,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== -"@babel/helper-remap-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23" - integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-wrap-function" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-remap-async-to-generator@^7.18.9": +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== @@ -245,41 +220,30 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" - integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== - dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" - -"@babel/helper-replace-supers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" - integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" + integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/traverse" "^7.19.1" + "@babel/types" "^7.19.0" -"@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== +"@babel/helper-simple-access@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" + integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.19.4" "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.20.0" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -293,17 +257,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== @@ -313,45 +267,26 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helper-wrap-function@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073" - integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== - dependencies: - "@babel/helper-function-name" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" - "@babel/helper-wrap-function@^7.18.9": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" - integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== - dependencies: - "@babel/helper-function-name" "^7.18.9" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.11" - "@babel/types" "^7.18.10" - -"@babel/helpers@^7.19.0": version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" - integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" + integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== dependencies: + "@babel/helper-function-name" "^7.19.0" "@babel/template" "^7.18.10" "@babel/traverse" "^7.19.0" "@babel/types" "^7.19.0" -"@babel/highlight@^7.10.4": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== +"@babel/helpers@^7.19.0", "@babel/helpers@^7.19.4": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" + integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.0" -"@babel/highlight@^7.18.6": +"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== @@ -360,10 +295,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" - integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.6", "@babel/parser@^7.20.1": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.1.tgz#3e045a92f7b4623cafc2425eddcb8cf2e54f9cc5" + integrity sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -382,9 +317,9 @@ "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-async-generator-functions@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7" - integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz#352f02baa5d69f4e7529bdac39aaa02d41146af9" + integrity sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-plugin-utils" "^7.19.0" @@ -553,11 +488,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" - integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -636,19 +571,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" - integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== +"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" - integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" @@ -674,9 +602,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz#315d70f68ce64426db379a3d830e7ac30be02e9b" - integrity sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz#91fe5e6ffc9ba13cb6c95ed7f0b1204f68c988c5" + integrity sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w== dependencies: "@babel/helper-plugin-utils" "^7.19.0" @@ -703,9 +631,9 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz#46890722687b9b89e1369ad0bd8dc6c5a3b4319d" - integrity sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz#712829ef4825d9cc04bb379de316f981e9a6f648" + integrity sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA== dependencies: "@babel/helper-plugin-utils" "^7.19.0" @@ -763,34 +691,31 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" - integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz#aca391801ae55d19c4d8d2ebfeaa33df5f2a2cbd" + integrity sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" - integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c" + integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-simple-access" "^7.19.4" "@babel/plugin-transform-modules-systemjs@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f" - integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz#59e2a84064b5736a4471b1aa7b13d4431d327e0d" + integrity sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.19.0" + "@babel/helper-module-transforms" "^7.19.6" "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-validator-identifier" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" @@ -824,11 +749,11 @@ "@babel/helper-replace-supers" "^7.18.6" "@babel/plugin-transform-parameters@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" - integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz#9a5aa370fdcce36f110455e9369db7afca0f9eeb" + integrity sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" @@ -837,10 +762,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-constant-elements@^7.17.12": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.9.tgz#ff6aeedd38f57ba6b41dcf824fcc8bcedb3e783f" - integrity sha512-IrTYh1I3YCEL1trjknnlLKTp5JggjzhKl/d3ibzPc97JhpFcDTr38Jdek/oX4cFbS6By0bXJcOkpRvJ5ZHK2wQ== +"@babel/plugin-transform-react-constant-elements@^7.18.12": + version "7.18.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz#edf3bec47eb98f14e84fa0af137fcc6aad8e0443" + integrity sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -859,15 +784,15 @@ "@babel/plugin-transform-react-jsx" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz#2721e96d31df96e3b7ad48ff446995d26bc028ff" - integrity sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw== + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" + integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.19.0" "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" @@ -929,13 +854,13 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.6.tgz#8f4ade1a9cf253e5cf7c7c20173082c2c08a50a7" - integrity sha512-ijHNhzIrLj5lQCnI6aaNVRtGVuUZhOXFLRVFs7lLrkXTHip4FKty5oAuQdk4tywG0/WjXmjTfQCWmuzrvFer1w== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.0.tgz#2c7ec62b8bfc21482f3748789ba294a46a375169" + integrity sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-typescript" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-typescript" "^7.20.0" "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" @@ -952,7 +877,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.18.2", "@babel/preset-env@^7.19.4": +"@babel/preset-env@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.4.tgz#4c91ce2e1f994f717efb4237891c3ad2d808c94b" integrity sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg== @@ -1044,7 +969,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.17.12", "@babel/preset-react@^7.18.6": +"@babel/preset-react@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== @@ -1056,7 +981,7 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" -"@babel/preset-typescript@^7.17.12", "@babel/preset-typescript@^7.18.6": +"@babel/preset-typescript@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== @@ -1066,13 +991,13 @@ "@babel/plugin-transform-typescript" "^7.18.6" "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" - integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" + integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== dependencies: - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.13.10" -"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3": +"@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -1081,26 +1006,26 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.18.11", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3", "@babel/traverse@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" - integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== +"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3", "@babel/traverse@^7.19.6", "@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" + integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" + "@babel/generator" "^7.20.1" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.3" - "@babel/types" "^7.19.3" + "@babel/parser" "^7.20.1" + "@babel/types" "^7.20.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" - integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.20.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.0.tgz#52c94cf8a7e24e89d2a194c25c35b17a64871479" + integrity sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -1320,6 +1245,13 @@ dependencies: jest-get-type "^28.0.2" +"@jest/expect-utils@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" + integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== + dependencies: + jest-get-type "^29.2.0" + "@jest/expect@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" @@ -1456,22 +1388,22 @@ slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/transform@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.0.tgz#1c55ca549f64810351df999265a29f8ead51be15" - integrity sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw== +"@jest/transform@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" + integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" jest-regex-util "^29.2.0" - jest-util "^29.2.0" + jest-util "^29.2.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1489,7 +1421,7 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.2.0", "@jest/types@^29.2.1": +"@jest/types@^29.2.1": version "29.2.1" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== @@ -1518,17 +1450,12 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== - -"@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== @@ -1541,7 +1468,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -1555,12 +1482,12 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" - integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" @@ -1624,9 +1551,9 @@ integrity sha512-eBV5rvW4dRFOU1eajN7FmYxjAIVz/mRHgUE9En9mBn6m3mulK3WTR5C3iQhL9MZ14rWAq+xOlEaCkDiW0/heOg== "@sinclair/typebox@^0.24.1": - version "0.24.20" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" - integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -1647,111 +1574,111 @@ resolved "https://registry.yarnpkg.com/@stomp/stompjs/-/stompjs-6.1.2.tgz#4ac3c380e8d1de1da94a3623d404e67de69dd01e" integrity sha512-FHDTrIFM5Ospi4L3Xhj6v2+NzCVAeNDcBe95YjUWhWiRMrBF6uN3I7AUOlRgT6jU/2WQvvYK8ZaIxFfxFp+uHQ== -"@svgr/babel-plugin-add-jsx-attribute@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.0.tgz#21788f7e982aacafc805ed30a14048a1406fbabc" - integrity sha512-Cp1JR1IPrQNvPRbkfcPmax52iunBC+eQDyBce8feOIIbVH6ZpVhErYoJtPWRBj2rKi4Wi9HvCm1+L1UD6QlBmg== +"@svgr/babel-plugin-add-jsx-attribute@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba" + integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ== -"@svgr/babel-plugin-remove-jsx-attribute@^6.5.0": +"@svgr/babel-plugin-remove-jsx-attribute@*": version "6.5.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz#652bfd4ed0a0699843585cda96faeb09d6e1306e" integrity sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA== -"@svgr/babel-plugin-remove-jsx-empty-expression@^6.5.0": +"@svgr/babel-plugin-remove-jsx-empty-expression@*": version "6.5.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz#4b78994ab7d39032c729903fc2dd5c0fa4565cb8" integrity sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw== -"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.0.tgz#ca57c0a62a9c22ff11cdb475dc9a2b35586335d1" - integrity sha512-XWm64/rSPUCQ+MFyA9lhMO+w8bOZvkTvovRIU1lpIy63ysPaVAFtxjQiZj+S7QaLaLGUXkSkf8WZsaN+QPo/gA== - -"@svgr/babel-plugin-svg-dynamic-title@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.0.tgz#57c0e0409757373d641f115d33cf2559b47bff77" - integrity sha512-JIF2D2ltiWFGlTw2fJ9jJg1fNT9rWjOD2Cf0/xzeW6Z2LIRQTHcRHxpZq359+SRWtEPsCXEWV2Xmd+DMBj6dBw== - -"@svgr/babel-plugin-svg-em-dimensions@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.0.tgz#dbca40a18c308f135b4b672ea8e410855e8e3352" - integrity sha512-uuo0FfLP4Nu2zncOcoUFDzZdXWma2bxkTGk0etRThs4/PghvPIGaW8cPhCg6yJ8zpaauWcKV0wZtzKlJRCtVzg== - -"@svgr/babel-plugin-transform-react-native-svg@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.0.tgz#a5453127365b925a7f766615ef6f5cfd01018f98" - integrity sha512-VMRWyOmrV+DaEFPgP3hZMsFgs2g87ojs3txw0Rx8iz6Nf/E3UoHUwTqpkSCWd3Hsnc9gMOY9+wl6+/Ycleh1sw== - -"@svgr/babel-plugin-transform-svg-component@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.0.tgz#ec116e9223a02c6dcd9f8cb2bdbf174a3c2ef2f5" - integrity sha512-b67Ul3SelaqvGEEG/1B3VJ03KUtGFgRQjRLCCjdttMQLcYa9l/izQFEclNFx53pNqhijUMNKHPhGMY/CWGVKig== - -"@svgr/babel-preset@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.0.tgz#dc14bbe1c74e0c8c4ab77221064645b3399836db" - integrity sha512-UWM98PKVuMqw2UZo8YO3erI6nF1n7/XBYTXBqR0QhZP7HTjYK6QxFNvPfIshddy1hBdzhVpkf148Vg8xiVOtyg== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^6.5.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^6.5.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.5.0" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.0" - "@svgr/babel-plugin-svg-dynamic-title" "^6.5.0" - "@svgr/babel-plugin-svg-em-dimensions" "^6.5.0" - "@svgr/babel-plugin-transform-react-native-svg" "^6.5.0" - "@svgr/babel-plugin-transform-svg-component" "^6.5.0" - -"@svgr/core@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.0.tgz#13af3337b7b66a2b6ebe197b67b62badbe490bf1" - integrity sha512-jIbu36GMjfK8HCCQitkfVVeQ2vSXGfq0ef0GO9HUxZGjal6Kvpkk4PwpkFP+OyCzF+skQFT9aWrUqekT3pKF8w== - dependencies: - "@babel/core" "^7.18.5" - "@svgr/babel-preset" "^6.5.0" - "@svgr/plugin-jsx" "^6.5.0" +"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60" + integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg== + +"@svgr/babel-plugin-svg-dynamic-title@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4" + integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw== + +"@svgr/babel-plugin-svg-em-dimensions@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217" + integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA== + +"@svgr/babel-plugin-transform-react-native-svg@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305" + integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg== + +"@svgr/babel-plugin-transform-svg-component@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250" + integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ== + +"@svgr/babel-preset@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828" + integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1" + "@svgr/babel-plugin-remove-jsx-attribute" "*" + "@svgr/babel-plugin-remove-jsx-empty-expression" "*" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1" + "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1" + "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1" + "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" + "@svgr/babel-plugin-transform-svg-component" "^6.5.1" + +"@svgr/core@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a" + integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== + dependencies: + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" camelcase "^6.2.0" cosmiconfig "^7.0.1" -"@svgr/hast-util-to-babel-ast@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.0.tgz#0e4aebea26328e22a6fff940711472a47ec24e5c" - integrity sha512-PPy94U/EiPQ2dY0b4jEqj4QOdDRq6DG7aTHjpGaL8HlKSHkpU1DpjfywCXTJqtOdCo2FywjWvg0U2FhqMeUJaA== +"@svgr/hast-util-to-babel-ast@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2" + integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw== dependencies: - "@babel/types" "^7.18.4" - entities "^4.3.0" + "@babel/types" "^7.20.0" + entities "^4.4.0" -"@svgr/plugin-jsx@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.0.tgz#c23ba0048007f1591fe7a9b060be373e4771487b" - integrity sha512-1CHMqOBKoNk/ZPU+iGXKcQPC6q9zaD7UOI99J+BaGY5bdCztcf5bZyi0QZSDRJtCQpdofeVv7XfBYov2mtl0Pw== +"@svgr/plugin-jsx@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072" + integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw== dependencies: - "@babel/core" "^7.18.5" - "@svgr/babel-preset" "^6.5.0" - "@svgr/hast-util-to-babel-ast" "^6.5.0" + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/hast-util-to-babel-ast" "^6.5.1" svg-parser "^2.0.4" -"@svgr/plugin-svgo@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.0.tgz#1d9b7d0909bde9fe7d724569c7f7833f3a7bacd7" - integrity sha512-8Zv1Yyv6I7HlIqrqGFM0sDKQrhjbfNZJawR8UjIaVWSb0tKZP1Ra6ymhqIFu6FT6kDRD0Ct5NlQZ10VUujSspw== +"@svgr/plugin-svgo@^6.5.0", "@svgr/plugin-svgo@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84" + integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ== dependencies: cosmiconfig "^7.0.1" deepmerge "^4.2.2" svgo "^2.8.0" "@svgr/webpack@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.0.tgz#663407b826cb96a3c3394cfe1f9bd107e693770a" - integrity sha512-rM/Z4pwMhqvAXEHoHIlE4SeTb0ToQNmJuBdiHwhP2ZtywyX6XqrgCv2WX7K/UCgNYJgYbekuylgyjnuLUHTcZQ== - dependencies: - "@babel/core" "^7.18.5" - "@babel/plugin-transform-react-constant-elements" "^7.17.12" - "@babel/preset-env" "^7.18.2" - "@babel/preset-react" "^7.17.12" - "@babel/preset-typescript" "^7.17.12" - "@svgr/core" "^6.5.0" - "@svgr/plugin-jsx" "^6.5.0" - "@svgr/plugin-svgo" "^6.5.0" + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8" + integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== + dependencies: + "@babel/core" "^7.19.6" + "@babel/plugin-transform-react-constant-elements" "^7.18.12" + "@babel/preset-env" "^7.19.4" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.18.6" + "@svgr/core" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" + "@svgr/plugin-svgo" "^6.5.1" "@testing-library/dom@^8.19.0", "@testing-library/dom@^8.5.0": version "8.19.0" @@ -1807,24 +1734,24 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/aria-query@^4.2.0": version "4.2.2" @@ -1858,9 +1785,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" + integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== dependencies: "@babel/types" "^7.3.0" @@ -1907,39 +1834,44 @@ integrity sha512-awMC2n4iRwJ6VWpQDA7dPqJhImeXHsVeEoQKWkdGB2cau+h/6erGoVre5Dk8p/DL1LIiLUcK6MnC3mibiKRRFg== "@types/eslint-scope@^3.7.3": - version "3.7.3" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" - integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575" - integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA== + version "8.4.9" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.9.tgz#f7371980148697f4b582b086630319b55324b5aa" + integrity sha512-jFCSo4wJzlHQLCpceUhUnXdrPuCNOjGFMQ8Eg6JXxlz3QaCKOb7eGi2cephQdM4XTYsNej69P9JDJ1zqNIbncQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.51": +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@^0.0.51": version "0.0.51" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" - integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== + version "4.17.31" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -2004,10 +1936,18 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*", "@types/jest@^28.1.7": - version "28.1.7" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.7.tgz#a680c5d05b69634c2d54a63cb106d7fb1adaba16" - integrity sha512-acDN4VHD40V24tgu0iC44jchXavRNVFXQ/E6Z5XNsswgoSO/4NgsXoEYmPUGookKldlZQyIpmrEXsHI9cA3ZTA== +"@types/jest@*": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.1.tgz#31fda30bdf2861706abc5f1730be78bed54f83ee" + integrity sha512-nKixEdnGDqFOZkMTF74avFNr3yRqB1ZJ6sRZv5/28D5x2oLN14KApv7F9mfDT/vUic0L3tRCsh3XWpWjtJisUQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jest@^28.1.7": + version "28.1.8" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" + integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw== dependencies: expect "^28.0.0" pretty-format "^28.0.0" @@ -2034,9 +1974,9 @@ "@types/lodash" "*" "@types/lodash@*": - version "4.14.182" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" - integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + version "4.14.187" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.187.tgz#122ff0a7192115b4c1a19444ab4482caa77e2c9d" + integrity sha512-MrO/xLXCaUgZy3y96C/iOsaIqZSeupyTImKClHunL5GrmaiII2VwvWmLBu2hwa0Kp0sV19CsyjtrTc/Fx8rg/A== "@types/mdast@^3.0.0": version "3.0.10" @@ -2045,30 +1985,30 @@ dependencies: "@types/unist" "*" -"@types/mdurl@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" - integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== "@types/ms@*": version "0.7.31" resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*", "@types/node@18.11.4": +"@types/node@*": + version "18.11.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" + integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + +"@types/node@18.11.4": version "18.11.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.4.tgz#7017a52e18dfaad32f55eebd539993014441949c" integrity sha512-BxcJpBu8D3kv/GZkx/gSMz6VnTJREBj/4lbzYOQueUOELkt8WrO6zAcSPmp9uRPEW/d+lUO8QK0W2xnS1hEU0A== "@types/node@^14.14.31": - version "14.18.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20" - integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig== + version "14.18.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.33.tgz#8c29a0036771569662e4635790ffa9e057db379b" + integrity sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg== "@types/parse-json@^4.0.0": version "4.0.0" @@ -2076,9 +2016,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.1.tgz#76e72d8a775eef7ce649c63c8acae1a0824bbaed" - integrity sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw== + version "2.7.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" + integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== "@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.5" @@ -2095,13 +2035,27 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@18.0.6", "@types/react-dom@^18.0.0": +"@types/react-dom@18.0.6": version "18.0.6" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== dependencies: "@types/react" "*" +"@types/react-dom@^18.0.0": + version "18.0.8" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.8.tgz#d2606d855186cd42cc1b11e63a71c39525441685" + integrity sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw== + dependencies: + "@types/react" "*" + +"@types/react-lottie@^1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@types/react-lottie/-/react-lottie-1.2.6.tgz#4f351dfdf5f93a46a3a9714fbb319f1e0f030eaf" + integrity sha512-fvGJHD7SeUdVESHo7f7erRnXkTWaa/6Mo5TB+R0/ieSftKoFspA4sMlF2qMH6BljXI7ehFJbBtrD5bzDxPCkGg== + dependencies: + "@types/react" "*" + "@types/react-redux@7.1.24": version "7.1.24" resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.24.tgz#6caaff1603aba17b27d20f8ad073e4c077e975c0" @@ -2122,9 +2076,9 @@ "@types/react-router" "*" "@types/react-router@*": - version "5.1.18" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3" - integrity sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g== + version "5.1.19" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.19.tgz#9b404246fba7f91474d7008a3d48c17b6e075ad6" + integrity sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA== dependencies: "@types/history" "^4.7.11" "@types/react" "*" @@ -2176,11 +2130,11 @@ "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== dependencies: - "@types/mime" "^1" + "@types/mime" "*" "@types/node" "*" "@types/sinonjs__fake-timers@8.1.1": @@ -2206,9 +2160,9 @@ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/testing-library__jest-dom@^5.9.1": - version "5.14.3" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz#ee6c7ffe9f8595882ee7bda8af33ae7b8789ef17" - integrity sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw== + version "5.14.5" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" + integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== dependencies: "@types/jest" "*" @@ -2240,9 +2194,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== + version "17.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" + integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== dependencies: "@types/yargs-parser" "*" @@ -2484,13 +2438,13 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" + acorn "^8.1.0" + acorn-walk "^8.0.2" acorn-import-assertions@^1.7.6: version "1.8.0" @@ -2502,25 +2456,20 @@ acorn-jsx@^5.3.1: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn-walk@^8.0.0, acorn-walk@^8.1.1: +acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== +acorn@^8.0.4, acorn@^8.1.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== agent-base@6: version "6.0.2" @@ -2643,9 +2592,11 @@ argparse@^1.0.7: sprintf-js "~1.0.2" aria-query@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" - integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" array-flatten@1.1.1: version "1.1.1" @@ -2657,7 +2608,7 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.4, array-includes@^3.1.5: +array-includes@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== @@ -2701,9 +2652,9 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== asynckit@^0.4.0: version "0.4.0" @@ -2725,6 +2676,11 @@ autosize@^4.0.2: resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.4.tgz#924f13853a466b633b9309330833936d8bccce03" integrity sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2749,11 +2705,11 @@ babel-jest@^28.1.3: slash "^3.0.0" babel-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.0.tgz#088624f037da90e69a06073305276cbd111d68a8" - integrity sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw== + version "29.2.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" + integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== dependencies: - "@jest/transform" "^29.2.0" + "@jest/transform" "^29.2.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -2771,13 +2727,6 @@ babel-loader@^8.2.5: make-dir "^3.1.0" schema-utils "^2.6.5" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" @@ -2867,6 +2816,14 @@ babel-preset-jest@^29.2.0: babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -2914,10 +2871,10 @@ bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" content-type "~1.0.4" @@ -2927,20 +2884,20 @@ body-parser@1.20.0: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" + qs "6.11.0" raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.12.tgz#28fbd4683f5f2e36feedb833e24ba661cac960c3" - integrity sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw== + version "1.0.14" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7" + integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ== dependencies: array-flatten "^2.1.2" dns-equal "^1.0.0" fast-deep-equal "^3.1.3" - multicast-dns "^7.2.4" + multicast-dns "^7.2.5" boolbase@^1.0.0: version "1.0.0" @@ -2962,23 +2919,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserslist@^4.14.5: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== - dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" - -browserslist@^4.21.3, browserslist@^4.21.4: +browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4: version "4.21.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== @@ -3081,15 +3022,10 @@ camelcase@^7.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.0.tgz#fd112621b212126741f998d614cbc2a8623fd174" integrity sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ== -caniuse-lite@^1.0.30001332: - version "1.0.30001342" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz#87152b1e3b950d1fbf0093e23f00b6c8e8f1da96" - integrity sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA== - caniuse-lite@^1.0.30001400: - version "1.0.30001406" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz#d0146e7919635479f873b4507517b627f66ab269" - integrity sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg== + version "1.0.30001429" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001429.tgz#70cdae959096756a85713b36dd9cb82e62325639" + integrity sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg== caseless@~0.12.0: version "0.12.0" @@ -3127,9 +3063,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== check-more-types@^2.24.0: version "2.24.0" @@ -3157,9 +3093,9 @@ chrome-trace-event@^1.0.2: integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== ci-info@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" - integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== + version "3.5.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" + integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -3167,9 +3103,9 @@ cjs-module-lexer@^1.0.0: integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== clean-css@^5.2.2: - version "5.3.0" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59" - integrity sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ== + version "5.3.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.1.tgz#d0610b0b90d125196a2894d35366f734e5d7aa32" + integrity sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg== dependencies: source-map "~0.6.0" @@ -3186,9 +3122,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-table3@~0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" optionalDependencies: @@ -3202,13 +3138,13 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" clone-deep@^4.0.1: @@ -3223,7 +3159,7 @@ clone-deep@^4.0.1: co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== collect-v8-coverage@^1.0.0: version "1.0.1" @@ -3247,7 +3183,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -3255,9 +3191,9 @@ color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" @@ -3304,7 +3240,7 @@ common-tags@^1.8.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compressible@~2.0.16: version "2.0.18" @@ -3329,12 +3265,12 @@ compression@^1.7.4: computed-style@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/computed-style/-/computed-style-0.1.4.tgz#7f344fd8584b2e425bedca4a1afc0e300bb05d74" - integrity sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ= + integrity sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== connect-history-api-fallback@^2.0.0: version "2.0.0" @@ -3354,16 +3290,14 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== cookie@0.5.0: version "0.5.0" @@ -3383,26 +3317,31 @@ copy-webpack-plugin@^11.0.0: serialize-javascript "^6.0.0" core-js-compat@^3.25.1: - version "3.25.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138" - integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ== + version "3.26.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.26.0.tgz#94e2cf8ba3e63800c4956ea298a6473bc9d62b44" + integrity sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A== dependencies: browserslist "^4.21.4" core-js-pure@^3.23.3: - version "3.25.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.25.5.tgz#79716ba54240c6aa9ceba6eee08cf79471ba184d" - integrity sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg== + version "3.26.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.26.0.tgz#7ad8a5dd7d910756f3124374b50026e23265ca9a" + integrity sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA== core-js@3.25.5: version "3.25.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.5.tgz#e86f651a2ca8a0237a5f064c2fe56cef89646e27" integrity sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw== +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" @@ -3475,7 +3414,7 @@ css-what@^6.0.1: css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssesc@^3.0.0: version "3.0.0" @@ -3507,9 +3446,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" - integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" + integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== cypress@10.10.0: version "10.10.0" @@ -3562,7 +3501,7 @@ cypress@10.10.0: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" @@ -3576,9 +3515,9 @@ data-urls@^3.0.2: whatwg-url "^11.0.0" dayjs@^1.10.4: - version "1.11.2" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5" - integrity sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw== + version "1.11.6" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb" + integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ== debug@2.6.9: version "2.6.9" @@ -3601,22 +3540,43 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -decimal.js@^10.3.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== +decimal.js@^10.4.1: + version "10.4.2" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" + integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-equal@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" + integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== + dependencies: + call-bind "^1.0.0" + es-get-iterator "^1.1.1" + get-intrinsic "^1.0.1" + is-arguments "^1.0.4" + is-date-object "^1.0.2" + is-regex "^1.1.1" + isarray "^2.0.5" + object-is "^1.1.4" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.3" + which-boxed-primitive "^1.0.1" + which-collection "^1.0.1" + which-typed-array "^1.1.2" deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" @@ -3651,7 +3611,7 @@ define-properties@^1.1.3, define-properties@^1.1.4: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" @@ -3661,12 +3621,12 @@ depd@2.0.0: depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== destroy@1.2.0: version "1.2.0" @@ -3688,6 +3648,11 @@ diff-sequences@^28.1.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +diff-sequences@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" + integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -3708,12 +3673,12 @@ dir-glob@^3.0.1: dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== dns-packet@^5.2.2: - version "5.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" - integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== + version "5.4.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" + integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -3820,7 +3785,7 @@ duplexer@^0.1.2: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -3828,17 +3793,12 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.4.118: - version "1.4.138" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.138.tgz#3ec41ca589aaf505dfe2034fde913329af801730" - integrity sha512-IOyp2Seq3w4QLln+yZWcMF3VXhhduz4bwg9gfI+CnP5TkzwNXQ8FCZuwwPsnes73AfWdf5J2n2OXdUwDUspDPQ== + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.251: - version "1.4.254" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz#c6203583890abf88dfc0be046cd72d3b48f8beb6" - integrity sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q== + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== emittery@^0.10.2: version "0.10.2" @@ -3863,7 +3823,7 @@ emojis-list@^3.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== end-of-stream@^1.1.0: version "1.4.4" @@ -3892,10 +3852,10 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" - integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== +entities@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== envinfo@^7.7.3: version "7.8.1" @@ -3910,66 +3870,56 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" error-stack-parser@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.7.tgz#b0c6e2ce27d0495cf78ad98715e0cad1219abb57" - integrity sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA== + version "2.1.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== dependencies: - stackframe "^1.1.1" + stackframe "^1.3.4" -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.19.2, es-abstract@^1.19.5: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" + get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" - is-callable "^1.2.4" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" + object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" +es-get-iterator@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" @@ -3999,12 +3949,12 @@ escalade@^3.1.1: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" @@ -4172,7 +4122,7 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eventemitter2@6.4.7: version "6.4.7" @@ -4229,12 +4179,12 @@ executable@^4.1.1: exenv@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" - integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50= + integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== expect@^28.0.0, expect@^28.1.3: version "28.1.3" @@ -4247,14 +4197,25 @@ expect@^28.0.0, expect@^28.1.3: jest-message-util "^28.1.3" jest-util "^28.1.3" +expect@^29.0.0: + version "29.2.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" + integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== + dependencies: + "@jest/expect-utils" "^29.2.2" + jest-get-type "^29.2.0" + jest-matcher-utils "^29.2.2" + jest-message-util "^29.2.1" + jest-util "^29.2.1" + express@^4.17.3: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.0" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.5.0" @@ -4273,7 +4234,7 @@ express@^4.17.3: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.10.3" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.18.0" @@ -4303,7 +4264,7 @@ extract-zip@2.0.1: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" @@ -4316,9 +4277,9 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4334,12 +4295,12 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-sta fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: version "1.13.0" @@ -4356,16 +4317,16 @@ faye-websocket@^0.11.3: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" @@ -4445,19 +4406,26 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== follow-redirects@^1.0.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@^4.0.0: version "4.0.0" @@ -4485,7 +4453,7 @@ forwarded@0.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-extra@^9.1.0: version "9.1.0" @@ -4497,7 +4465,7 @@ fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-monkey@1.0.3: +fs-monkey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== @@ -4505,7 +4473,7 @@ fs-monkey@1.0.3: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" @@ -4530,7 +4498,7 @@ function.prototype.name@^1.1.5: functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== functions-have-names@^1.2.2: version "1.2.3" @@ -4547,14 +4515,14 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-package-type@^0.1.0: version "0.1.0" @@ -4591,7 +4559,7 @@ getos@^3.2.1: getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" @@ -4647,9 +4615,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" @@ -4666,9 +4634,9 @@ globby@^11.0.3: slash "^3.0.0" globby@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.1.tgz#7c44a93869b0b7612e38f22ed532bfe37b25ea6f" - integrity sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q== + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: dir-glob "^3.0.1" fast-glob "^3.2.11" @@ -4677,9 +4645,9 @@ globby@^13.1.1: slash "^4.0.0" google-protobuf@^3.6.1: - version "3.20.1" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.20.1.tgz#1b255c2b59bcda7c399df46c65206aa3c7a0ce8b" - integrity sha512-XMf1+O32FjYIV3CYu6Tuh5PNbfNEU5Xu22X+Xkdb/DUexFlCzhvv7d5Iirm4AOwn8lv4al1YvIhzGrg2j9Zfzw== + version "3.21.2" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" + integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" @@ -4711,7 +4679,7 @@ has-bigints@^1.0.1, has-bigints@^1.0.2: has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" @@ -4764,7 +4732,7 @@ hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== dependencies: inherits "^2.0.1" obuf "^1.0.0" @@ -4832,7 +4800,7 @@ htmlparser2@^6.1.0: http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== http-errors@2.0.0: version "2.0.0" @@ -4848,7 +4816,7 @@ http-errors@2.0.0: http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== dependencies: depd "~1.1.2" inherits "2.0.3" @@ -4856,9 +4824,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" - integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== http-proxy-agent@^5.0.0: version "5.0.0" @@ -4945,7 +4913,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: identity-obj-proxy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== dependencies: harmony-reflect "^1.4.6" @@ -4965,9 +4933,9 @@ ignore@^5.1.8, ignore@^5.2.0: integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== immer@^9.0.7: - version "9.0.14" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.14.tgz#e05b83b63999d26382bb71676c9d827831248a48" - integrity sha512-ubBeqQutOSLIFCUBN03jGeOS6a3DoYlSYwYJTa+gSKEZKU5redJIqkIdZ3JVv/4RZpfcXdAWH5zCNLWPRv2WDw== + version "9.0.16" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.16.tgz#8e7caab80118c2b54b37ad43e05758cdefad0198" + integrity sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ== immutable@^4.0.0: version "4.1.0" @@ -4993,7 +4961,7 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" @@ -5003,7 +4971,7 @@ indent-string@^4.0.0: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -5016,7 +4984,7 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@2.0.0: version "2.0.0" @@ -5052,10 +5020,18 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== +is-arguments@^1.0.4, is-arguments@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" @@ -5084,10 +5060,10 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^3.0.0: version "3.0.1" @@ -5096,14 +5072,14 @@ is-ci@^3.0.0: dependencies: ci-info "^3.2.0" -is-core-module@^2.2.0, is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -5118,7 +5094,7 @@ is-docker@^2.0.0, is-docker@^2.1.1: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -5145,7 +5121,12 @@ is-installed-globally@~0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" -is-negative-zero@^2.0.1, is-negative-zero@^2.0.2: +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== @@ -5173,9 +5154,9 @@ is-plain-obj@^3.0.0: integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-plain-object@^2.0.4: version "2.0.4" @@ -5189,7 +5170,7 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.1.4: +is-regex@^1.1.1, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -5197,7 +5178,12 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-shared-array-buffer@^1.0.1, is-shared-array-buffer@^1.0.2: +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== @@ -5223,23 +5209,47 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakref@^1.0.1, is-weakref@^1.0.2: +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -5247,20 +5257,25 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== isomorphic-fetch@^3.0.0: version "3.0.0" @@ -5273,7 +5288,7 @@ isomorphic-fetch@^3.0.0: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" @@ -5281,9 +5296,9 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" - integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -5310,9 +5325,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -5406,6 +5421,16 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-diff@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" + integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.2.0" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" + jest-docblock@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" @@ -5455,6 +5480,11 @@ jest-get-type@^28.0.2: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +jest-get-type@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" + integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== + jest-haste-map@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" @@ -5474,20 +5504,20 @@ jest-haste-map@^28.1.3: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.0.tgz#2410f2ec93958e0bd894818de6c8056eb1b4d6fc" - integrity sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg== +jest-haste-map@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" + integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.2.0" - jest-worker "^29.2.0" + jest-util "^29.2.1" + jest-worker "^29.2.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -5511,6 +5541,16 @@ jest-matcher-utils@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" +jest-matcher-utils@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" + integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== + dependencies: + chalk "^4.0.0" + jest-diff "^29.2.1" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" + jest-message-util@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" @@ -5692,7 +5732,7 @@ jest-util@^28.0.0, jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.2.0, jest-util@^29.2.1: +jest-util@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== @@ -5748,13 +5788,13 @@ jest-worker@^28.1.3: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.0.tgz#b2bd1a81fc7a1ae79a500b05f5feb0d1c0b1a19e" - integrity sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A== +jest-worker@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" + integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== dependencies: "@types/node" "*" - jest-util "^29.2.0" + jest-util "^29.2.1" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -5784,20 +5824,20 @@ js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsdom@^20.0.0: - version "20.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.0.tgz#882825ac9cc5e5bbee704ba16143e1fa78361ebf" - integrity sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA== + version "20.0.2" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.2.tgz#65ccbed81d5e877c433f353c58bb91ff374127db" + integrity sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA== dependencies: abab "^2.0.6" - acorn "^8.7.1" - acorn-globals "^6.0.0" + acorn "^8.8.0" + acorn-globals "^7.0.0" cssom "^0.5.0" cssstyle "^2.3.0" data-urls "^3.0.2" - decimal.js "^10.3.1" + decimal.js "^10.4.1" domexception "^4.0.0" escodegen "^2.0.0" form-data "^4.0.0" @@ -5805,18 +5845,17 @@ jsdom@^20.0.0: http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.1" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "^7.0.0" + nwsapi "^2.2.2" + parse5 "^7.1.1" saxes "^6.0.0" symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" + tough-cookie "^4.1.2" w3c-xmlserializer "^3.0.0" webidl-conversions "^7.0.0" whatwg-encoding "^2.0.0" whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" - ws "^8.8.0" + ws "^8.9.0" xml-name-validator "^4.0.0" jsesc@^2.5.1: @@ -5827,7 +5866,7 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" @@ -5852,12 +5891,12 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.1: version "1.0.1" @@ -5891,12 +5930,12 @@ jsprim@^2.0.2: verror "1.10.0" "jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz#e624f259143b9062c92b6413ff92a164c80d3ccb" - integrity sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q== + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== dependencies: - array-includes "^3.1.4" - object.assign "^4.1.2" + array-includes "^3.1.5" + object.assign "^4.1.3" kind-of@^6.0.2: version "6.0.3" @@ -5909,9 +5948,9 @@ kleur@^3.0.3: integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== klona@^2.0.4: version "2.0.5" @@ -5921,7 +5960,7 @@ klona@^2.0.4: lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== leven@^3.1.0: version "3.1.0" @@ -5939,7 +5978,7 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -5947,7 +5986,7 @@ levn@~0.3.0: line-height@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/line-height/-/line-height-0.3.1.tgz#4b1205edde182872a5efa3c8f620b3187a9c54c9" - integrity sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk= + integrity sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w== dependencies: computed-style "~0.1.3" @@ -5995,9 +6034,9 @@ loader-utils@^1.1.0: json5 "^1.0.1" loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + version "2.0.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.3.tgz#d4b15b8504c63d1fc3f2ade52d41bc8459d6ede1" + integrity sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -6025,12 +6064,12 @@ lodash-es@^4.17.15, lodash-es@^4.17.21: lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.merge@^4.6.2: version "4.6.2" @@ -6040,12 +6079,12 @@ lodash.merge@^4.6.2: lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== lodash@^4.0.1, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" @@ -6077,6 +6116,11 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lottie-web@^5.1.3: + version "5.9.6" + resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.9.6.tgz#62ae68563355d3e04aa75d53dec3dd4bea0e57c9" + integrity sha512-JFs7KsHwflugH5qIXBpB4905yC1Sub2MZWtl/elvO/QC6qj1ApqbUZJyjzJseJUtVpgiDaXQLjBlIJGS7UUUXA== + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -6094,7 +6138,7 @@ lru-cache@^6.0.0: lz-string@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ== make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" @@ -6126,13 +6170,13 @@ material-colors@^1.2.1: integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== mdast-util-definitions@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" - integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" + integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - unist-util-visit "^3.0.0" + unist-util-visit "^4.0.0" mdast-util-from-markdown@^1.0.0: version "1.2.0" @@ -6153,16 +6197,15 @@ mdast-util-from-markdown@^1.0.0: uvu "^0.5.0" mdast-util-to-hast@^12.1.0: - version "12.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz#89a2bb405eaf3b05eb8bf45157678f35eef5dbca" - integrity sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw== + version "12.2.4" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.4.tgz#34c1ef2b6cf01c27b3e3504e2c977c76f722e7e1" + integrity sha512-a21xoxSef1l8VhHxS1Dnyioz6grrJkoaCUgGzMD/7dWHvboYX3VW53esRUfB5tgTyz4Yos1n25SPcj35dJqmAg== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" - "@types/mdurl" "^1.0.0" mdast-util-definitions "^5.0.0" - mdurl "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" unist-builder "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" @@ -6178,27 +6221,22 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.3.tgz#fc08ac32363b6ea6c95381cabb4d67838180d4e1" - integrity sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg== + version "3.4.9" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.9.tgz#403bb953776d72fef4e39e1197a25ffa156d143a" + integrity sha512-3rm8kbrzpUGRyPKSGuk387NZOwQ90O4rI9tsWQkzNW7BLSnKGp23RsEsKK8N8QVCrtJoAMqy3spxHC4os4G6PQ== dependencies: - fs-monkey "1.0.3" + fs-monkey "^1.0.3" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" @@ -6213,7 +6251,7 @@ merge2@^1.3.0, merge2@^1.4.1: methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromark-core-commonmark@^1.0.1: version "1.0.6" @@ -6340,9 +6378,9 @@ micromark-util-encode@^1.0.0: integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== micromark-util-html-tag-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" - integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== micromark-util-normalize-identifier@^1.0.0: version "1.0.0" @@ -6358,10 +6396,10 @@ micromark-util-resolve-all@^1.0.0: dependencies: micromark-util-types "^1.0.0" -micromark-util-sanitize-uri@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" - integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" + integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== dependencies: micromark-util-character "^1.0.0" micromark-util-encode "^1.0.0" @@ -6388,9 +6426,9 @@ micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== micromark@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" - integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" + integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -6443,7 +6481,7 @@ mimic-fn@^2.1.0: min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== dependencies: dom-walk "^0.1.0" @@ -6475,14 +6513,14 @@ mri@^1.1.0: integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== mrmime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" - integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -6494,7 +6532,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns@^7.2.4: +multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== @@ -6510,7 +6548,7 @@ nanoid@^3.3.4: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" @@ -6545,12 +6583,7 @@ node-forge@^1: node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-releases@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.6: version "2.0.6" @@ -6576,39 +6609,42 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== +nwsapi@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" + integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.11.0: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-inspect@^1.12.0, object-inspect@^1.9.0: - version "1.12.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.1.tgz#28a661153bad7e470e4b01479ef1cb91ce511191" - integrity sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA== +object-is@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.2, object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" object.entries@^1.1.5: @@ -6666,7 +6702,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -6718,7 +6754,7 @@ optionator@^0.9.1: ospath@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" - integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= + integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== p-limit@^2.2.0: version "2.3.0" @@ -6793,12 +6829,12 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" - integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== +parse5@^7.0.0, parse5@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" + integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== dependencies: - entities "^4.3.0" + entities "^4.4.0" parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" @@ -6821,14 +6857,14 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -6836,7 +6872,7 @@ path-parse@^1.0.6, path-parse@^1.0.7: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-type@^4.0.0: version "4.0.0" @@ -6846,12 +6882,12 @@ path-type@^4.0.0: pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0: version "1.0.0" @@ -6866,7 +6902,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pirates@^4.0.4: version "4.0.5" @@ -6922,9 +6958,9 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@^8.4.7: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + version "8.4.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" + integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -6943,7 +6979,7 @@ prelude-ls@^1.2.1: prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prettier@^2.7.1: version "2.7.1" @@ -6982,7 +7018,7 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.2.1: +pretty-format@^29.0.0, pretty-format@^29.2.1: version "29.2.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== @@ -6999,7 +7035,7 @@ process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.0: version "2.0.3" @@ -7039,12 +7075,12 @@ proxy-addr@~2.0.7: proxy-from-env@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pump@^3.0.0: version "3.0.0" @@ -7059,10 +7095,10 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" @@ -7071,6 +7107,11 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -7175,6 +7216,14 @@ react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== +react-lottie@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/react-lottie/-/react-lottie-1.2.3.tgz#8544b96939e088658072eea5e12d912cdaa3acc1" + integrity sha512-qLCERxUr8M+4mm1LU0Ruxw5Y5Fn/OmYkGfnA+JDM/dZb3oKwVAJCjwnjkj9TMHtzR2U6sMEUD3ZZ1RaHagM7kA== + dependencies: + babel-runtime "^6.26.0" + lottie-web "^5.1.3" + react-markdown@^8.0.2: version "8.0.3" resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.3.tgz#e8aba0d2f5a1b2124d476ee1fff9448a2f57e4b3" @@ -7197,9 +7246,9 @@ react-markdown@^8.0.2: vfile "^5.0.0" react-modal@^3.14.4: - version "3.15.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.15.1.tgz#950ce67bfef80971182dd0ed38f2d9b1a681288b" - integrity sha512-duB9bxOaYg7Zt6TMFldIFxQRtSP+Dg3F1ZX3FXxSUn+3tZZ/9JCgeAQKDg7rhZSAqopq8TFRw3yIbnx77gyFTw== + version "3.16.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" + integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== dependencies: exenv "^1.2.0" prop-types "^15.7.2" @@ -7325,10 +7374,10 @@ redux@^4.0.0, redux@^4.1.2, redux@^4.2.0: dependencies: "@babel/runtime" "^7.9.2" -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== dependencies: regenerate "^1.4.2" @@ -7337,10 +7386,15 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.9: + version "0.13.10" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" + integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== regenerator-transform@^0.15.0: version "0.15.0" @@ -7349,7 +7403,7 @@ regenerator-transform@^0.15.0: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -7364,33 +7418,33 @@ regexpp@^3.1.0: integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regexpu-core@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" - integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== + version "5.2.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.1.tgz#a69c26f324c1e962e9ffd0b88b055caba8089139" + integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" + regenerate-unicode-properties "^10.1.0" + regjsgen "^0.7.1" + regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== +regjsgen@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" + integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== remark-parse@^10.0.0: version "10.0.1" @@ -7425,14 +7479,14 @@ renderkid@^3.0.0: request-progress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" - integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= + integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== dependencies: throttleit "^1.0.0" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" @@ -7442,7 +7496,7 @@ require-from-string@^2.0.2: requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== reselect@4.1.6, reselect@^4.1.5: version "4.1.6" @@ -7472,21 +7526,22 @@ resolve.exports@^1.1.0: integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== resolve@^1.14.2, resolve@^1.20.0, resolve@^1.9.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.3: - version "2.0.0-next.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" restore-cursor@^3.1.0: version "3.1.0" @@ -7526,9 +7581,9 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" rxjs@^7.5.1: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== + version "7.5.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" + integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== dependencies: tslib "^2.1.0" @@ -7549,15 +7604,24 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass-loader@^13.0.2: - version "13.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.0.2.tgz#e81a909048e06520e9f2ff25113a801065adb3fe" - integrity sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q== + version "13.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.1.0.tgz#e5b9acf14199a9bc6eaed7a0b8b23951c2cebf6f" + integrity sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ== dependencies: klona "^2.0.4" neo-async "^2.6.2" @@ -7624,7 +7688,7 @@ schema-utils@^4.0.0: select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== selfsigned@^2.1.1: version "2.1.1" @@ -7639,9 +7703,9 @@ semver@5.6.0: integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -7679,7 +7743,7 @@ serialize-javascript@^6.0.0: serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== dependencies: accepts "~1.3.4" batch "0.6.1" @@ -7733,7 +7797,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.4: +side-channel@^1.0.3, side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== @@ -7833,9 +7897,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== space-separated-tokens@^2.0.0: version "2.0.1" @@ -7868,7 +7932,7 @@ spdy@^4.0.2: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.14.1: version "1.17.0" @@ -7897,10 +7961,10 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -stackframe@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.1.tgz#1033a3473ee67f08e2f2fc8eba6aef4f845124e1" - integrity sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg== +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== statuses@2.0.1: version "2.0.1" @@ -7910,7 +7974,7 @@ statuses@2.0.1: "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== string-length@^4.0.1: version "4.0.2" @@ -7943,7 +8007,7 @@ string.prototype.matchall@^4.0.7: regexp.prototype.flags "^1.4.1" side-channel "^1.0.4" -string.prototype.trimend@^1.0.4, string.prototype.trimend@^1.0.5: +string.prototype.trimend@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== @@ -7952,7 +8016,7 @@ string.prototype.trimend@^1.0.4, string.prototype.trimend@^1.0.5: define-properties "^1.1.4" es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4, string.prototype.trimstart@^1.0.5: +string.prototype.trimstart@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== @@ -8038,9 +8102,9 @@ supports-color@^8.0.0, supports-color@^8.1.1: has-flag "^4.0.0" supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -8074,9 +8138,9 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^6.0.9: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -8109,9 +8173,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.6: terser "^5.14.1" terser@^5.10.0, terser@^5.14.1: - version "5.14.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" - integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== + version "5.15.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" + integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -8130,17 +8194,17 @@ test-exclude@^6.0.0: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g== through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== thunky@^1.0.2: version "1.1.0" @@ -8167,7 +8231,7 @@ tmpl@1.0.5: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -8186,14 +8250,15 @@ totalist@^1.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== +tough-cookie@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" + integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== dependencies: psl "^1.1.33" punycode "^2.1.1" - universalify "^0.1.2" + universalify "^0.2.0" + url-parse "^1.5.3" tough-cookie@~2.5.0: version "2.5.0" @@ -8213,7 +8278,12 @@ tr46@^3.0.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trough@^2.0.0: version "2.1.0" @@ -8259,9 +8329,9 @@ tslib@^1.8.1: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3, tslib@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== tsutils@3.21.0, tsutils@^3.21.0: version "3.21.0" @@ -8273,14 +8343,14 @@ tsutils@3.21.0, tsutils@^3.21.0: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -8292,7 +8362,7 @@ type-check@^0.4.0, type-check@~0.4.0: type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" @@ -8334,7 +8404,7 @@ typescript@^4.8.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== -unbox-primitive@^1.0.1, unbox-primitive@^1.0.2: +unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== @@ -8363,9 +8433,9 @@ unicode-match-property-value-ecmascript@^2.0.0: integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== unified@^10.0.0: version "10.1.2" @@ -8411,44 +8481,27 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" - integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit-parents@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" - integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" - integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== +unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" unist-util-visit@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" - integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" + integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" + unist-util-visit-parents "^5.1.1" -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: version "2.0.0" @@ -8458,7 +8511,7 @@ universalify@^2.0.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== untildify@^4.0.0: version "4.0.0" @@ -8466,9 +8519,9 @@ untildify@^4.0.0: integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== update-browserslist-db@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" - integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -8489,25 +8542,33 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + use-sync-external-store@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz#3343c3fe7f7e404db70f8c687adf5c1652d34e82" - integrity sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^8.3.2: version "8.3.2" @@ -8515,9 +8576,9 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== dependencies: dequal "^2.0.0" diff "^5.0.0" @@ -8546,12 +8607,12 @@ v8-to-istanbul@^9.0.1: vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -8566,9 +8627,9 @@ vfile-message@^3.0.0: unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" - integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== + version "5.3.5" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.5.tgz#ec2e206b1414f561c85b7972bb1eeda8ab47ee61" + integrity sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -8578,14 +8639,7 @@ vfile@^5.0.0: void-elements@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== w3c-xmlserializer@^3.0.0: version "3.0.0" @@ -8626,7 +8680,7 @@ wbuf@^1.1.0, wbuf@^1.7.3: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^7.0.0: version "7.0.0" @@ -8634,9 +8688,9 @@ webidl-conversions@^7.0.0: integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== webpack-bundle-analyzer@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.1.tgz#bee2ee05f4ba4ed430e4831a319126bb4ed9f5a6" - integrity sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw== + version "4.7.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz#33c1c485a7fcae8627c547b5c3328b46de733c66" + integrity sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg== dependencies: acorn "^8.0.4" acorn-walk "^8.0.0" @@ -8797,12 +8851,12 @@ whatwg-url@^11.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: +which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -8813,6 +8867,28 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -8851,25 +8927,25 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" ws@^7.3.1: - version "7.5.7" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.4.2, ws@^8.8.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== +ws@^8.4.2, ws@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51" + integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw== xml-name-validator@^4.0.0: version "4.0.0" @@ -8897,16 +8973,16 @@ yaml@^1.10.0: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^21.0.0, yargs-parser@^21.0.1: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + version "17.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" + integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" @@ -8917,7 +8993,7 @@ yargs@^17.3.1: yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" From ce57ef8038a209a4d89772ad323c36a74f899c32 Mon Sep 17 00:00:00 2001 From: Ljupco Vangelski Date: Wed, 9 Nov 2022 13:07:52 +0100 Subject: [PATCH 17/28] [#3764] Kafka 3.3.1 docker image and helm chart (#3882) --- .../kafka => kafka/2.7.0/image}/Dockerfile | 0 .../kafka => kafka/2.7.0/image}/Makefile | 0 .../2.7.0/image}/config/server.properties | 0 .../2.7.0/image}/config/zookeeper.properties | 0 .../2.7.0/image}/scripts/configure-kafka.sh | 0 .../image}/scripts/configure-zookeeper.sh | 0 .../2.7.0/image}/scripts/entrypoint.sh | 0 infrastructure/kafka/2.7.0/kafka/BUILD | 5 + infrastructure/kafka/2.7.0/kafka/Chart.yaml | 5 + .../kafka/2.7.0/kafka/charts/kafka/Chart.yaml | 5 + .../kafka/charts/kafka/templates/_helpers.tpl | 93 +++++++++ .../kafka/templates/headless-service.yaml | 17 ++ .../charts/kafka/templates/prometheus.yaml | 41 ++++ .../kafka/charts/kafka/templates/service.yaml | 36 ++++ .../charts/kafka/templates/statefulset.yaml | 163 +++++++++++++++ .../2.7.0/kafka/charts/kafka/values.yaml | 40 ++++ .../kafka/charts/schema-registry/Chart.yaml | 5 + .../schema-registry/templates/deployment.yaml | 58 ++++++ .../schema-registry/templates/service.yaml | 14 ++ .../kafka/charts/schema-registry/values.yaml | 10 + .../2.7.0/kafka/charts/zookeeper/Chart.yaml | 5 + .../charts/zookeeper/templates/_helpers.tpl | 48 +++++ .../zookeeper/templates/headless-service.yaml | 19 ++ .../templates/poddisruptionbudget.yaml | 19 ++ .../charts/zookeeper/templates/service.yaml | 17 ++ .../zookeeper/templates/statefulset.yaml | 158 +++++++++++++++ .../2.7.0/kafka/charts/zookeeper/values.yaml | 25 +++ .../kafka/templates/kafka-helper-scripts.yaml | 36 ++++ infrastructure/kafka/2.7.0/kafka/values.yaml | 5 + infrastructure/kafka/3.3.1/helm/BUILD | 5 + infrastructure/kafka/3.3.1/helm/Chart.yaml | 5 + .../kafka/3.3.1/helm/charts/kafka/Chart.yaml | 5 + .../helm/charts/kafka/templates/_helpers.tpl | 80 ++++++++ .../charts/kafka/templates/configmap.yaml | 14 ++ .../kafka/templates/headless-service.yaml | 17 ++ .../charts/kafka/templates/prometheus.yaml | 41 ++++ .../helm/charts/kafka/templates/service.yaml | 70 +++++++ .../charts/kafka/templates/statefulset.yaml | 188 ++++++++++++++++++ .../kafka/3.3.1/helm/charts/kafka/values.yaml | 31 +++ .../helm/charts/schema-registry/Chart.yaml | 5 + .../schema-registry/templates/deployment.yaml | 58 ++++++ .../schema-registry/templates/service.yaml | 14 ++ .../helm/charts/schema-registry/values.yaml | 10 + .../helm/templates/kafka-helper-scripts.yaml | 36 ++++ infrastructure/kafka/3.3.1/helm/values.yaml | 5 + infrastructure/kafka/3.3.1/image/Dockerfile | 29 +++ infrastructure/kafka/3.3.1/image/Makefile | 6 + .../3.3.1/image/config/server.properties | 6 + .../3.3.1/image/scripts/configure-kafka.sh | 45 +++++ .../kafka/3.3.1/image/scripts/entrypoint.sh | 11 + 50 files changed, 1505 insertions(+) rename infrastructure/{images/kafka => kafka/2.7.0/image}/Dockerfile (100%) rename infrastructure/{images/kafka => kafka/2.7.0/image}/Makefile (100%) rename infrastructure/{images/kafka => kafka/2.7.0/image}/config/server.properties (100%) rename infrastructure/{images/kafka => kafka/2.7.0/image}/config/zookeeper.properties (100%) rename infrastructure/{images/kafka => kafka/2.7.0/image}/scripts/configure-kafka.sh (100%) rename infrastructure/{images/kafka => kafka/2.7.0/image}/scripts/configure-zookeeper.sh (100%) rename infrastructure/{images/kafka => kafka/2.7.0/image}/scripts/entrypoint.sh (100%) create mode 100644 infrastructure/kafka/2.7.0/kafka/BUILD create mode 100644 infrastructure/kafka/2.7.0/kafka/Chart.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/kafka/Chart.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/_helpers.tpl create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/headless-service.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/prometheus.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/service.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/statefulset.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/kafka/values.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/schema-registry/Chart.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/schema-registry/templates/deployment.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/schema-registry/templates/service.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/schema-registry/values.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/zookeeper/Chart.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/_helpers.tpl create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/headless-service.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/poddisruptionbudget.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/service.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/statefulset.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/charts/zookeeper/values.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/templates/kafka-helper-scripts.yaml create mode 100644 infrastructure/kafka/2.7.0/kafka/values.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/BUILD create mode 100644 infrastructure/kafka/3.3.1/helm/Chart.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/kafka/Chart.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/kafka/templates/_helpers.tpl create mode 100644 infrastructure/kafka/3.3.1/helm/charts/kafka/templates/configmap.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/kafka/templates/headless-service.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/kafka/templates/prometheus.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/kafka/templates/service.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/kafka/templates/statefulset.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/kafka/values.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/schema-registry/Chart.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/schema-registry/templates/deployment.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/schema-registry/templates/service.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/charts/schema-registry/values.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/templates/kafka-helper-scripts.yaml create mode 100644 infrastructure/kafka/3.3.1/helm/values.yaml create mode 100644 infrastructure/kafka/3.3.1/image/Dockerfile create mode 100644 infrastructure/kafka/3.3.1/image/Makefile create mode 100644 infrastructure/kafka/3.3.1/image/config/server.properties create mode 100755 infrastructure/kafka/3.3.1/image/scripts/configure-kafka.sh create mode 100755 infrastructure/kafka/3.3.1/image/scripts/entrypoint.sh diff --git a/infrastructure/images/kafka/Dockerfile b/infrastructure/kafka/2.7.0/image/Dockerfile similarity index 100% rename from infrastructure/images/kafka/Dockerfile rename to infrastructure/kafka/2.7.0/image/Dockerfile diff --git a/infrastructure/images/kafka/Makefile b/infrastructure/kafka/2.7.0/image/Makefile similarity index 100% rename from infrastructure/images/kafka/Makefile rename to infrastructure/kafka/2.7.0/image/Makefile diff --git a/infrastructure/images/kafka/config/server.properties b/infrastructure/kafka/2.7.0/image/config/server.properties similarity index 100% rename from infrastructure/images/kafka/config/server.properties rename to infrastructure/kafka/2.7.0/image/config/server.properties diff --git a/infrastructure/images/kafka/config/zookeeper.properties b/infrastructure/kafka/2.7.0/image/config/zookeeper.properties similarity index 100% rename from infrastructure/images/kafka/config/zookeeper.properties rename to infrastructure/kafka/2.7.0/image/config/zookeeper.properties diff --git a/infrastructure/images/kafka/scripts/configure-kafka.sh b/infrastructure/kafka/2.7.0/image/scripts/configure-kafka.sh similarity index 100% rename from infrastructure/images/kafka/scripts/configure-kafka.sh rename to infrastructure/kafka/2.7.0/image/scripts/configure-kafka.sh diff --git a/infrastructure/images/kafka/scripts/configure-zookeeper.sh b/infrastructure/kafka/2.7.0/image/scripts/configure-zookeeper.sh similarity index 100% rename from infrastructure/images/kafka/scripts/configure-zookeeper.sh rename to infrastructure/kafka/2.7.0/image/scripts/configure-zookeeper.sh diff --git a/infrastructure/images/kafka/scripts/entrypoint.sh b/infrastructure/kafka/2.7.0/image/scripts/entrypoint.sh similarity index 100% rename from infrastructure/images/kafka/scripts/entrypoint.sh rename to infrastructure/kafka/2.7.0/image/scripts/entrypoint.sh diff --git a/infrastructure/kafka/2.7.0/kafka/BUILD b/infrastructure/kafka/2.7.0/kafka/BUILD new file mode 100644 index 0000000000..374bb095f5 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/BUILD @@ -0,0 +1,5 @@ +load("//tools/build:helm.bzl", "helm_ruleset_version") + +helm_ruleset_version( + version = "2.7.0", +) diff --git a/infrastructure/kafka/2.7.0/kafka/Chart.yaml b/infrastructure/kafka/2.7.0/kafka/Chart.yaml new file mode 100644 index 0000000000..8898fbbea8 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +appVersion: "1.0" +description: A kafka helm chart for Airy Platform +name: kafka +version: 2.7.0 diff --git a/infrastructure/kafka/2.7.0/kafka/charts/kafka/Chart.yaml b/infrastructure/kafka/2.7.0/kafka/charts/kafka/Chart.yaml new file mode 100644 index 0000000000..c5cf8a85ed --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/kafka/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +appVersion: "1.0" +description: A Helm chart for Confluent Kafka on Kubernetes +name: kafka +version: 1.0 diff --git a/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/_helpers.tpl b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/_helpers.tpl new file mode 100644 index 0000000000..fe026c0740 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/_helpers.tpl @@ -0,0 +1,93 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "kafka.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "kafka.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "kafka.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified zookeeper name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "kafka.zookeeper.fullname" -}} +{{- $name := default "zookeeper" (index .Values "zookeeper" "nameOverride") -}} +{{- printf "%s-headless" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Form the Zookeeper URL. If zookeeper is installed as part of this chart, use k8s service discovery, +else use user-provided URL +*/}} +{{- define "kafka.zookeeper.service-name" }} +{{- if (index .Values "zookeeper" "enabled") -}} +{{- $clientPort := default 2181 (index .Values "zookeeper" "clientPort") | int -}} +{{- printf "%s:%d" (include "kafka.zookeeper.fullname" .) $clientPort }} +{{- else -}} +{{- $zookeeperConnect := printf "%s" (index .Values "zookeeper" "url") }} +{{- $zookeeperConnectOverride := (index .Values "configurationOverrides" "zookeeper.connect") }} +{{- default $zookeeperConnect $zookeeperConnectOverride }} +{{- end -}} +{{- end -}} + +{{/* +Form the Advertised Listeners. We will use the value of nodeport.firstListenerPort to create the +external advertised listeners if configurationOverrides.advertised.listeners is not set. +*/}} +{{- define "kafka.configuration.advertised.listeners" }} +{{- if (index .Values "configurationOverrides" "advertised.listeners") -}} +{{- printf ",%s" (first (pluck "advertised.listeners" .Values.configurationOverrides)) }} +{{- else -}} +{{- printf ",EXTERNAL://${HOST_IP}:$((%s + ${KAFKA_BROKER_ID}))" (.Values.nodeport.firstListenerPort | toString) }} +{{- end -}} +{{- end -}} + +{{/* +Create a default fully qualified kafka headless name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "kafka.kafka-headless.fullname" -}} +{{- $name := "kafka-headless" -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a variable containing all the datadirs created. +*/}} + +{{- define "kafka.log.dirs" -}} +{{- range $k, $e := until (.Values.persistence.disksPerBroker|int) -}} +{{- if $k}}{{- printf ","}}{{end}} +{{- printf "/opt/kafka/data-%d/logs" $k -}} +{{- end -}} +{{- end -}} + +{{- define "kafka.prometheus.name" -}} +{{- $name := "prometheus-prometheus-kafka-exporter" -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/headless-service.yaml b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/headless-service.yaml new file mode 100644 index 0000000000..c7bef21618 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/headless-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "kafka.fullname" . }}-headless + labels: + app: {{ template "kafka.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + ports: + - port: {{ .Values.port }} + name: broker + clusterIP: None + selector: + app: {{ template "kafka.name" . }} + release: {{ .Release.Name }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/prometheus.yaml b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/prometheus.yaml new file mode 100644 index 0000000000..3eba2f9055 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/prometheus.yaml @@ -0,0 +1,41 @@ +{{- if .Values.prometheus.enabled }} +{{- if .Capabilities.APIVersions.Has "apps/v1" }} +apiVersion: apps/v1 +{{- else }} +apiVersion: apps/v1beta2 +{{- end }} +kind: Deployment +metadata: + name: {{ template "kafka.prometheus.name" . }} + labels: + app: {{ template "kafka.prometheus.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ template "kafka.prometheus.name" . }} + release: {{ .Release.Name }} + template: + metadata: + labels: + app: {{ template "kafka.prometheus.name" . }} + release: {{ .Release.Name }} + spec: + containers: + - name: prometheus + image: "{{ .Values.prometheus.exporterImage }}:{{ .Values.prometheus.exporterImageTag }}" + command: ["/bin/kafka_exporter"] + args: + - "--kafka.server={{ template "kafka.name" . }}:{{ .Values.port }}" + resources: + requests: + cpu: 50m + memory: 64Mi + imagePullPolicy: "{{ .Values.imagePullPolicy }}" + ports: + - containerPort: {{ .Values.prometheus.exporterPort }} + name: prometheus +{{ end }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/service.yaml b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/service.yaml new file mode 100644 index 0000000000..b83bb2b90f --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/service.yaml @@ -0,0 +1,36 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "kafka.fullname" . }} + labels: + app: {{ template "kafka.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + ports: + - port: {{ .Values.port }} + name: broker + selector: + app: {{ template "kafka.name" . }} + release: {{ .Release.Name }} +--- +{{- if .Values.prometheus.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "kafka.prometheus.name" . }} + labels: + app: {{ template "kafka.prometheus.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + core.airy.co/prometheus: {{ template "kafka.name" . }} +spec: + ports: + - port: {{ .Values.prometheus.exporterPort }} + name: prometheus + selector: + app: {{ template "kafka.prometheus.name" . }} + release: {{ .Release.Name }} +{{ end }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/statefulset.yaml b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/statefulset.yaml new file mode 100644 index 0000000000..1521c11565 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/kafka/templates/statefulset.yaml @@ -0,0 +1,163 @@ +{{- if .Capabilities.APIVersions.Has "apps/v1" }} +apiVersion: apps/v1 +{{- else }} +apiVersion: apps/v1beta1 +{{- end }} +kind: StatefulSet +metadata: + name: {{ template "kafka.fullname" . }} + labels: + app: {{ template "kafka.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + {{- if .Capabilities.APIVersions.Has "apps/v1" }} + selector: + matchLabels: + app: {{ template "kafka.name" . }} + release: {{ .Release.Name }} + {{- end }} + serviceName: {{ template "kafka.fullname" . }}-headless + podManagementPolicy: {{ .Values.podManagementPolicy }} + replicas: {{ default 3 .Values.brokers }} + updateStrategy: + type: {{ .Values.updateStrategy }} + template: + metadata: + labels: + app: {{ template "kafka.name" . }} + release: {{ .Release.Name }} + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 1 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: "app" + operator: In + values: + - {{ template "kafka.name" . }} + - key: "release" + operator: In + values: + - {{ .Release.Name }} + topologyKey: "kubernetes.io/hostname" + containers: + - name: {{ template "kafka.name" . }}-broker + image: "{{ .Values.image }}:{{ .Values.imageTag }}" + imagePullPolicy: "{{ .Values.imagePullPolicy }}" + ports: + - containerPort: {{ .Values.port }} + name: kafka + {{- if .Values.nodeport.enabled }} + {{- $brokers := .Values.brokers | int }} + {{- $root := . }} + {{- range $i, $e := until $brokers }} + - containerPort: {{ add $root.Values.nodeport.firstListenerPort $i }} + name: nodeport-{{ $i }} + {{- end }} + {{- end }} + resources: +{{ toYaml .Values.resources | indent 10 }} + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: AIRY_LISTENERS + value: PLAINTEXT://0.0.0.0:9092,EXTERNAL://0.0.0.0:AIRY_BROKER_PORT + - name: AIRY_ADVERTISED_LISTENERS + value: PLAINTEXT://AIRY_POD_NAME.{{ template "kafka.fullname" . }}-headless.AIRY_NAMESPACE:9092,EXTERNAL://AIRY_HOST_IP:AIRY_BROKER_PORT + - name: AIRY_FIRST_LISTENER_PORT + value: "{{ .Values.firstListenerPort }}" + - name: KAFKA_HEAP_OPTS + value: {{ .Values.heapOptions }} + - name: KAFKA_ZOOKEEPER_CONNECT + value: {{ include "kafka.zookeeper.service-name" . | quote }} + {{- range $key, $value := .Values.configurationOverrides }} + - name: {{ printf "KAFKA_%s" $key | replace "." "_" | upper | quote }} + value: {{ $value | quote }} + {{- end }} + args: ["kafka-server-start.sh", "/etc/kafka/server.properties"] + volumeMounts: + {{- if .Values.persistence.enabled }} + {{- $disksPerBroker := .Values.persistence.disksPerBroker | int }} + {{- range $k, $e := until $disksPerBroker }} + - name: datadir-{{$k}} + mountPath: /opt/kafka/data-{{$k}} + {{- end }} + {{- end }} + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + initContainers: + - name: wait + image: "{{ .Values.global.busyboxImage }}" + imagePullPolicy: IfNotPresent + command: ["/bin/sh", "/opt/provisioning/wait-for-service-url.sh"] + env: + - name: SERVICE_URL + value: {{ include "kafka.zookeeper.service-name" . | quote }} + volumeMounts: + - name: kafka-helper-scripts + mountPath: /opt/provisioning + - name: fix-permissions + image: "{{ .Values.global.busyboxImage }}" + imagePullPolicy: IfNotPresent + command: + - sh + - -c + - "chown -R 1000 /opt/kafka/" + volumeMounts: + {{- if .Values.persistence.enabled }} + {{- $disksPerBroker := .Values.persistence.disksPerBroker | int }} + {{- range $k, $e := until $disksPerBroker }} + - name: datadir-{{$k}} + mountPath: /opt/kafka/data-{{$k}} + {{- end }} + {{- end }} + volumes: + {{- if not .Values.persistence.enabled }} + - name: datadir-0 + emptyDir: {} + {{- end }} + - name: kafka-helper-scripts + configMap: + name: kafka-helper-scripts + {{- if .Values.persistence.enabled }} + volumeClaimTemplates: + {{- $disksPerBroker := .Values.persistence.disksPerBroker | int }} + {{- $root := . }} + {{- range $k, $e := until $disksPerBroker }} + - metadata: + name: datadir-{{$k}} + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: "{{ $root.Values.persistence.size }}" + {{- if $root.Values.persistence.storageClass }} + {{- if (eq "-" $root.Values.persistence.storageClass) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ $root.Values.persistence.storageClass }}" + {{- end }} + {{- end }} +{{- end }} +{{- end }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/kafka/values.yaml b/infrastructure/kafka/2.7.0/kafka/charts/kafka/values.yaml new file mode 100644 index 0000000000..24f1408db7 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/kafka/values.yaml @@ -0,0 +1,40 @@ +brokers: 1 +image: ghcr.io/airyhq/infrastructure/kafka +imageTag: 2.7.0 +imagePullPolicy: IfNotPresent +imagePullSecrets: +podManagementPolicy: OrderedReady +updateStrategy: RollingUpdate +configurationOverrides: + "offsets.topic.replication.factor": "1" + "log.retention.hours": "-1" + "listener.security.protocol.map": |- + PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT +port: 9092 +firstListenerPort: 31090 +persistence: + enabled: true + size: 10Gi + disksPerBroker: 1 +heapOptions: "-Xms512M -Xmx512M" +resources: {} +podAnnotations: {} +nodeSelector: {} +tolerations: [] +nodeport: + enabled: true + servicePort: 19092 + firstListenerPort: 31090 +zookeeper: + enabled: true + servers: 1 + persistence: + enabled: true + dataDirSize: 5Gi + dataLogDirSize: 5Gi + url: "" +prometheus: + enabled: false + exporterImage: danielqsj/kafka-exporter + exporterImageTag: v1.3.0 + exporterPort: 9308 diff --git a/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/Chart.yaml b/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/Chart.yaml new file mode 100644 index 0000000000..aa28809832 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +appVersion: "1.0" +description: A Helm chart for the karapace.io Schema Registry on Kubernetes +name: schema-registry +version: 1.0 diff --git a/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/templates/deployment.yaml b/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/templates/deployment.yaml new file mode 100644 index 0000000000..82fd26fae2 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/templates/deployment.yaml @@ -0,0 +1,58 @@ +{{- if .Capabilities.APIVersions.Has "apps/v1" }} +apiVersion: apps/v1 +{{- else }} +apiVersion: apps/v1beta2 +{{- end }} +kind: Deployment +metadata: + name: schema-registry + labels: + app: schema-registry + release: {{ .Release.Name }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: schema-registry + release: {{ .Release.Name }} + template: + metadata: + labels: + app: schema-registry + release: {{ .Release.Name }} + WorkerType: "{{ default "NodeGroup" .Values.global.workerType }}" + spec: + containers: + - name: schema-registry-server + image: "{{ .Values.containerRegistry}}/{{ .Values.image }}:{{ .Values.imageTag }}" + imagePullPolicy: "{{ .Values.imagePullPolicy }}" + ports: + - name: schema-registry + containerPort: {{ .Values.servicePort }} + protocol: TCP + resources: +{{ toYaml .Values.resources | indent 12 }} + env: + - name: KARAPACE_ADVERTISED_HOSTNAME + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KARAPACE_BOOTSTRAP_URI + value: {{ .Values.kafka.bootstrapServers }} + initContainers: + - name: wait + image: "{{ .Values.global.busyboxImage }}" + imagePullPolicy: IfNotPresent + command: ["/bin/sh", "/opt/provisioning/wait-for-minimum-kafkas.sh"] + env: + - name: KAFKA_BROKERS + value: {{ .Values.kafka.bootstrapServers }} + - name: REPLICAS + value: {{ .Values.kafka.minBrokers | quote }} + volumeMounts: + - name: kafka-helper-scripts + mountPath: /opt/provisioning + volumes: + - name: kafka-helper-scripts + configMap: + name: kafka-helper-scripts diff --git a/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/templates/service.yaml b/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/templates/service.yaml new file mode 100644 index 0000000000..7d17a5bd92 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: schema-registry + labels: + app: schema-registry + release: {{ .Release.Name }} +spec: + ports: + - name: schema-registry + port: {{ .Values.servicePort }} + selector: + app: schema-registry + release: {{ .Release.Name }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/values.yaml b/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/values.yaml new file mode 100644 index 0000000000..838b64bc68 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/schema-registry/values.yaml @@ -0,0 +1,10 @@ +replicaCount: 1 +containerRegistry: ghcr.io/airyhq +image: infrastructure/schema-registry +imageTag: 2.0.1 +imagePullPolicy: Always +servicePort: 8081 +kafka: + bootstrapServers: kafka-headless:9092 + minBrokers: 1 +resources: {} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/Chart.yaml b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/Chart.yaml new file mode 100644 index 0000000000..9dcc049857 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +appVersion: "1.0" +description: A Helm chart for Confluent Zookeeper on Kubernetes +name: zookeeper +version: 1.0 \ No newline at end of file diff --git a/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/_helpers.tpl b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/_helpers.tpl new file mode 100644 index 0000000000..dff32ff458 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/_helpers.tpl @@ -0,0 +1,48 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "cp-zookeeper.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "cp-zookeeper.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "cp-zookeeper.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a server list string based on fullname, namespace, # of servers +in a format like "zkhost1:port:port;zkhost2:port:port" +*/}} +{{- define "cp-zookeeper.serverlist" -}} +{{- $namespace := .Release.Namespace }} +{{- $name := include "cp-zookeeper.fullname" . -}} +{{- $serverPort := .Values.serverPort -}} +{{- $leaderElectionPort := .Values.leaderElectionPort -}} +{{- $zk := dict "servers" (list) -}} +{{- range $idx, $v := until (int .Values.servers) }} +{{- $noop := printf "%s-%d.%s-headless.%s:%d:%d" $name $idx $name $namespace (int $serverPort) (int $leaderElectionPort) | append $zk.servers | set $zk "servers" -}} +{{- end }} +{{- printf "%s" (join ";" $zk.servers) | quote -}} +{{- end -}} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/headless-service.yaml b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/headless-service.yaml new file mode 100644 index 0000000000..6e354b9020 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/headless-service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "cp-zookeeper.fullname" . }}-headless + labels: + app: {{ template "cp-zookeeper.name" . }} + chart: {{ template "cp-zookeeper.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + ports: + - port: {{ .Values.serverPort }} + name: server + - port: {{ .Values.leaderElectionPort }} + name: leader-election + clusterIP: None + selector: + app: {{ template "cp-zookeeper.name" . }} + release: {{ .Release.Name }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/poddisruptionbudget.yaml b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/poddisruptionbudget.yaml new file mode 100644 index 0000000000..855a11b967 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/poddisruptionbudget.yaml @@ -0,0 +1,19 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ template "cp-zookeeper.fullname" . }}-pdb + labels: + app: {{ template "cp-zookeeper.name" . }} + chart: {{ template "cp-zookeeper.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + selector: + matchLabels: + app: {{ template "cp-zookeeper.name" . }} + release: {{ .Release.Name }} + {{- if .Values.minAvailable }} + minAvailable: {{ .Values.minAvailable }} + {{- else }} + maxUnavailable: 1 + {{- end }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/service.yaml b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/service.yaml new file mode 100644 index 0000000000..f19bef6314 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "cp-zookeeper.fullname" . }} + labels: + app: {{ template "cp-zookeeper.name" . }} + chart: {{ template "cp-zookeeper.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.serviceType }} + ports: + - port: {{ .Values.clientPort }} + name: client + selector: + app: {{ template "cp-zookeeper.name" . }} + release: {{ .Release.Name }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/statefulset.yaml b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/statefulset.yaml new file mode 100644 index 0000000000..2356f50d97 --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/templates/statefulset.yaml @@ -0,0 +1,158 @@ +{{- if .Capabilities.APIVersions.Has "apps/v1" }} +apiVersion: apps/v1 +{{- else }} +apiVersion: apps/v1beta1 +{{- end }} +kind: StatefulSet +metadata: + name: {{ template "cp-zookeeper.fullname" . }} + labels: + app: {{ template "cp-zookeeper.name" . }} + chart: {{ template "cp-zookeeper.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + {{- if .Capabilities.APIVersions.Has "apps/v1" }} + selector: + matchLabels: + app: {{ template "cp-zookeeper.name" . }} + release: {{ .Release.Name }} + {{- end }} + serviceName: {{ template "cp-zookeeper.fullname" . }}-headless + podManagementPolicy: {{ .Values.podManagementPolicy }} + replicas: {{ default 3 .Values.servers }} + updateStrategy: + type: {{ .Values.updateStrategy }} + template: + metadata: + labels: + app: {{ template "cp-zookeeper.name" . }} + release: {{ .Release.Name }} + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 1 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: "app" + operator: In + values: + - {{ template "cp-zookeeper.name" . }} + - key: "release" + operator: In + values: + - {{ .Release.Name }} + topologyKey: "kubernetes.io/hostname" + initContainers: + - name: fix-permissions + image: "{{ .Values.global.busyboxImage }}" + imagePullPolicy: IfNotPresent + command: + - sh + - -c + - "chown -R 1000 /var/lib/zookeeper/" + volumeMounts: + - name: datadir + mountPath: /var/lib/zookeeper/data + - name: datalogdir + mountPath: /var/lib/zookeeper/log + containers: + - name: {{ template "cp-zookeeper.name" . }}-server + image: "{{ .Values.image }}:{{ .Values.imageTag }}" + imagePullPolicy: "{{ .Values.imagePullPolicy }}" + ports: + - containerPort: {{ .Values.clientPort }} + name: client + - containerPort: {{ .Values.serverPort }} + name: server + - containerPort: {{ .Values.leaderElectionPort }} + name: leader-election + resources: +{{ toYaml .Values.resources | indent 10 }} + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name : KAFKA_HEAP_OPTS + value: "{{ .Values.heapOptions }}" + - name : ZOOKEEPER_TICK_TIME + value: "{{ .Values.tickTime }}" + - name : ZOOKEEPER_SYNC_LIMIT + value: "{{ .Values.syncLimit }}" + - name : ZOOKEEPER_INIT_LIMIT + value: "{{ .Values.initLimit }}" + - name : ZOOKEEPER_MAX_CLIENT_CNXNS + value: "{{ .Values.maxClientCnxns }}" + - name : ZOOKEEPER_AUTOPURGE_SNAP_RETAIN_COUNT + value: "{{ .Values.autoPurgeSnapRetainCount}}" + - name : ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL + value: "{{ .Values.autoPurgePurgeInterval}}" + - name: ZOOKEEPER_CLIENT_PORT + value: "{{ .Values.clientPort }}" + - name : ZOOKEEPER_SERVERS + value: {{ template "cp-zookeeper.serverlist" . }} + # ZOOKEEPER_SERVER_ID is required just to pass cp-zookeeper ensure script for env check, + # the value(metadata.mame) is not used and will be overwritten in command part + - name: ZOOKEEPER_SERVER_ID + valueFrom: + fieldRef: + fieldPath: metadata.name + args: ["zookeeper-server-start.sh", "/etc/kafka/zookeeper.properties"] + volumeMounts: + - name: datadir + mountPath: /var/lib/zookeeper/data + - name: datalogdir + mountPath: /var/lib/zookeeper/log + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + volumes: + {{ if not .Values.persistence.enabled }} + - name: datadir + emptyDir: {} + - name: datalogdir + emptyDir: {} + {{- end }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.tolerations }} + tolerations: +{{ toYaml .Values.tolerations | indent 8 }} + {{- end }} + {{- if .Values.persistence.enabled }} + volumeClaimTemplates: + - metadata: + name: datadir + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: "{{ .Values.persistence.dataDirSize }}" + {{- if .Values.persistence.dataDirStorageClass }} + {{- if (eq "-" .Values.persistence.dataDirStorageClass) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ .Values.persistence.dataDirStorageClass }}" + {{- end }} + {{- end }} + - metadata: + name: datalogdir + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: "{{ .Values.persistence.dataLogDirSize }}" + {{- if .Values.persistence.dataLogDirStorageClass }} + {{- if (eq "-" .Values.persistence.dataLogDirStorageClass) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ .Values.persistence.dataLogDirStorageClass }}" + {{- end }} + {{- end }} + {{- end }} diff --git a/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/values.yaml b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/values.yaml new file mode 100644 index 0000000000..ad682bb02b --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/charts/zookeeper/values.yaml @@ -0,0 +1,25 @@ +servers: 1 +image: ghcr.io/airyhq/infrastructure/kafka +imageTag: 2.7.0 +imagePullPolicy: IfNotPresent +imagePullSecrets: +podManagementPolicy: OrderedReady +updateStrategy: RollingUpdate +tickTime: 2000 +syncLimit: 5 +initLimit: 10 +maxClientCnxns: 60 +autoPurgeSnapRetainCount: 3 +autoPurgePurgeInterval: 24 +heapOptions: "-Xms512M -Xmx512M" +serverPort: 2888 +leaderElectionPort: 3888 +clientPort: 2181 +persistence: + enabled: true + dataDirSize: 5Gi + dataLogDirSize: 5Gi +resources: {} +podAnnotations: {} +nodeSelector: {} +tolerations: [] diff --git a/infrastructure/kafka/2.7.0/kafka/templates/kafka-helper-scripts.yaml b/infrastructure/kafka/2.7.0/kafka/templates/kafka-helper-scripts.yaml new file mode 100644 index 0000000000..7620ff649b --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/templates/kafka-helper-scripts.yaml @@ -0,0 +1,36 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: kafka-helper-scripts +data: + wait-for-service-url.sh: | + #!/bin/sh + url=${SERVICE_URL} + delay=${2:-10} + service=$(echo ${url} | cut -d ":" -f1) + port=$(echo ${url} | cut -d ":" -f2) + + while ! nc -z ${service} ${port} >/dev/null 2>&1; do sleep ${delay}; echo Waiting for service ${service} to start...; done + + wait-for-minimum-kafkas.sh: | + #!/bin/sh + kafka_brokers=${KAFKA_BROKERS:-kafka:9092} + replicas=${REPLICAS:-1} + delay=${1:-10} + minimum_kafkas=0 + kafkas=$(echo ${kafka_brokers} | tr "," " ") + + while [ "${minimum_kafkas}" -lt "${replicas}" ]; do + minimum_kafkas=0 + for kafka in ${kafkas}; do + service=$(echo ${kafka} | cut -d ":" -f1) + port=$(echo ${kafka} | cut -d ":" -f2) + if $(nc -w 1 -z ${service} ${port} 2>/dev/null); then + minimum_kafkas=$((minimum_kafkas+1)) + fi + done + echo Available brokers: ${minimum_kafkas}, required brokers: ${replicas} + if [ "$minimum_kafkas" -lt "$replicas" ]; then + sleep ${delay} + fi + done diff --git a/infrastructure/kafka/2.7.0/kafka/values.yaml b/infrastructure/kafka/2.7.0/kafka/values.yaml new file mode 100644 index 0000000000..8e82f2dc9f --- /dev/null +++ b/infrastructure/kafka/2.7.0/kafka/values.yaml @@ -0,0 +1,5 @@ +enabled: true +global: + containerRegistry: ghcr.io/airyhq + busyboxImage: ghcr.io/airyhq/infrastructure/busybox:latest + workerType: \ No newline at end of file diff --git a/infrastructure/kafka/3.3.1/helm/BUILD b/infrastructure/kafka/3.3.1/helm/BUILD new file mode 100644 index 0000000000..81948f5a43 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/BUILD @@ -0,0 +1,5 @@ +load("//tools/build:helm.bzl", "helm_ruleset_version") + +helm_ruleset_version( + version = "3.3.1", +) diff --git a/infrastructure/kafka/3.3.1/helm/Chart.yaml b/infrastructure/kafka/3.3.1/helm/Chart.yaml new file mode 100644 index 0000000000..f7292a6611 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +appVersion: "1.0" +description: A kafka helm chart for Airy Platform +name: kafka +version: 3.3.1 diff --git a/infrastructure/kafka/3.3.1/helm/charts/kafka/Chart.yaml b/infrastructure/kafka/3.3.1/helm/charts/kafka/Chart.yaml new file mode 100644 index 0000000000..c5cf8a85ed --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/kafka/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +appVersion: "1.0" +description: A Helm chart for Confluent Kafka on Kubernetes +name: kafka +version: 1.0 diff --git a/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/_helpers.tpl b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/_helpers.tpl new file mode 100644 index 0000000000..afaf6cdab9 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/_helpers.tpl @@ -0,0 +1,80 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "kafka.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "kafka.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "kafka.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Form the Advertised Listeners. We will use the value of nodeport.firstListenerPort to create the +external advertised listeners if configurationOverrides.advertised.listeners is not set. +*/}} +{{- define "kafka.configuration.advertised.listeners" }} +{{- if (index .Values "configurationOverrides" "advertised.listeners") -}} +{{- printf ",%s" (first (pluck "advertised.listeners" .Values.configurationOverrides)) }} +{{- else -}} +{{- printf ",EXTERNAL://${HOST_IP}:$((%s + ${KAFKA_BROKER_ID}))" (.Values.nodeport.firstListenerPort | toString) }} +{{- end -}} +{{- end -}} + +{{/* +Create a default fully qualified kafka headless name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "kafka.kafka-headless.fullname" -}} +{{- $name := "kafka-headless" -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a variable containing all the datadirs created. +*/}} + +{{- define "kafka.log.dirs" -}} +{{- range $k, $e := until (.Values.persistence.disksPerBroker|int) -}} +{{- if $k}}{{- printf ","}}{{end}} +{{- printf "/opt/kafka/data-%d/logs" $k -}} +{{- end -}} +{{- end -}} + +{{- define "kafka.prometheus.name" -}} +{{- $name := "prometheus-prometheus-kafka-exporter" -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- define "kafka.controller-quorum-voters" -}} + {{- $firstControllerPort := .Values.firstControllerPort -}} + {{- $brokers := .Values.brokers -}} + {{- range $k, $v := until ($brokers|int) -}} + {{- printf "%d@kafka-%d:%d" $k $k (add ($firstControllerPort|int) $k) -}} + {{- if (lt $k (sub $brokers 1 )) -}} + {{- printf "," -}} + {{- end -}} + {{- end -}} +{{- end -}} diff --git a/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/configmap.yaml b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/configmap.yaml new file mode 100644 index 0000000000..e0be5ae6a6 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/configmap.yaml @@ -0,0 +1,14 @@ +{{- if .Values.sasl }} +kind: ConfigMap +apiVersion: v1 +metadata: + name: kafka-jaas +data: + kafka_jaas.conf: | + KafkaServer { + org.apache.kafka.common.security.plain.PlainLoginModule required + username={{- default "admin" .Values.jaasUsername | quote }} + password={{- default (randAlphaNum 32) .Values.jaasPassword | quote }} + user_admin={{- default (randAlphaNum 64) .Values.jaasAdminPassword | quote }}; + }; +{{- end }} \ No newline at end of file diff --git a/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/headless-service.yaml b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/headless-service.yaml new file mode 100644 index 0000000000..c7bef21618 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/headless-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "kafka.fullname" . }}-headless + labels: + app: {{ template "kafka.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + ports: + - port: {{ .Values.port }} + name: broker + clusterIP: None + selector: + app: {{ template "kafka.name" . }} + release: {{ .Release.Name }} diff --git a/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/prometheus.yaml b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/prometheus.yaml new file mode 100644 index 0000000000..3eba2f9055 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/prometheus.yaml @@ -0,0 +1,41 @@ +{{- if .Values.prometheus.enabled }} +{{- if .Capabilities.APIVersions.Has "apps/v1" }} +apiVersion: apps/v1 +{{- else }} +apiVersion: apps/v1beta2 +{{- end }} +kind: Deployment +metadata: + name: {{ template "kafka.prometheus.name" . }} + labels: + app: {{ template "kafka.prometheus.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ template "kafka.prometheus.name" . }} + release: {{ .Release.Name }} + template: + metadata: + labels: + app: {{ template "kafka.prometheus.name" . }} + release: {{ .Release.Name }} + spec: + containers: + - name: prometheus + image: "{{ .Values.prometheus.exporterImage }}:{{ .Values.prometheus.exporterImageTag }}" + command: ["/bin/kafka_exporter"] + args: + - "--kafka.server={{ template "kafka.name" . }}:{{ .Values.port }}" + resources: + requests: + cpu: 50m + memory: 64Mi + imagePullPolicy: "{{ .Values.imagePullPolicy }}" + ports: + - containerPort: {{ .Values.prometheus.exporterPort }} + name: prometheus +{{ end }} diff --git a/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/service.yaml b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/service.yaml new file mode 100644 index 0000000000..910e001101 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/service.yaml @@ -0,0 +1,70 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "kafka.fullname" . }} + labels: + app: {{ template "kafka.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + ports: + - port: {{ .Values.port }} + name: broker + selector: + app: {{ template "kafka.name" . }} + release: {{ .Release.Name }} +--- +{{- $brokers := .Values.brokers | int }} +{{- $firstControllerPort := .Values.firstControllerPort }} +{{- range $k, $v := until ($brokers|int) }} +apiVersion: v1 +kind: Service +metadata: + name: kafka-{{ $k }} + labels: + app: kafka-controller +spec: + type: NodePort + ports: + - port: {{ add ($firstControllerPort|int) $k }} + protocol: TCP + selector: + statefulset.kubernetes.io/pod-name: kafka-{{ $k }} +--- +{{- end }} +{{- if .Values.sasl }} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "kafka.fullname" . }}-external + labels: + app: {{ template "kafka.name" . }} +spec: + type: LoadBalancer + ports: + - port: {{ .Values.saslPort }} + name: broker + selector: + app: {{ template "kafka.name" . }} +--- +{{- end }} +{{- if .Values.prometheus.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "kafka.prometheus.name" . }} + labels: + app: {{ template "kafka.prometheus.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + core.airy.co/prometheus: {{ template "kafka.name" . }} +spec: + ports: + - port: {{ .Values.prometheus.exporterPort }} + name: prometheus + selector: + app: {{ template "kafka.prometheus.name" . }} + release: {{ .Release.Name }} +{{ end }} diff --git a/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/statefulset.yaml b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/statefulset.yaml new file mode 100644 index 0000000000..9d9b103116 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/kafka/templates/statefulset.yaml @@ -0,0 +1,188 @@ +{{- if .Capabilities.APIVersions.Has "apps/v1" }} +apiVersion: apps/v1 +{{- else }} +apiVersion: apps/v1beta1 +{{- end }} +{{- $brokers := .Values.brokers | int }} +kind: StatefulSet +metadata: + name: {{ template "kafka.fullname" . }} + labels: + app: {{ template "kafka.name" . }} + chart: {{ template "kafka.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + {{- if .Capabilities.APIVersions.Has "apps/v1" }} + selector: + matchLabels: + app: {{ template "kafka.name" . }} + release: {{ .Release.Name }} + {{- end }} + serviceName: {{ template "kafka.fullname" . }}-headless + podManagementPolicy: {{ .Values.podManagementPolicy }} + replicas: {{ $brokers }} + updateStrategy: + type: {{ .Values.updateStrategy }} + template: + metadata: + labels: + app: {{ template "kafka.name" . }} + release: {{ .Release.Name }} + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 1 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: "app" + operator: In + values: + - {{ template "kafka.name" . }} + - key: "release" + operator: In + values: + - {{ .Release.Name }} + topologyKey: "kubernetes.io/hostname" + containers: + - name: {{ template "kafka.name" . }}-broker + image: "{{ .Values.image }}:{{ .Values.imageTag }}" + imagePullPolicy: "{{ .Values.imagePullPolicy }}" + ports: + - containerPort: {{ .Values.port }} + name: kafka + {{- if .Values.nodeport.enabled }} + {{- $root := . }} + {{- range $i, $e := until $brokers }} + - containerPort: {{ add $root.Values.firstListenerPort $i }} + name: nodeport-{{ $i }} + {{- end }} + {{- end }} + {{- $root := . }} + {{- range $i, $e := until $brokers }} + - containerPort: {{ add $root.Values.firstControllerPort $i }} + name: controller-{{ $i }} + {{- end }} + {{- if .Values.sasl }} + - containerPort: {{ .Values.saslPort }} + name: kafka-sasl + {{- end }} + resources: +{{ toYaml .Values.resources | indent 10 }} + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: HOST_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: AIRY_LISTENERS + value: PLAINTEXT://0.0.0.0:9092,EXTERNAL://0.0.0.0:AIRY_BROKER_PORT,CONTROLLER://0.0.0.0:AIRY_CONTROLLER_PORT{{- if .Values.sasl }},SASL_PLAINTEXT://0.0.0.0:{{ .Values.saslPort }}{{- end }} + - name: AIRY_ADVERTISED_LISTENERS + value: PLAINTEXT://AIRY_POD_NAME.{{ template "kafka.fullname" . }}-headless.AIRY_NAMESPACE:9092,EXTERNAL://AIRY_HOST_IP:AIRY_BROKER_PORT{{- if .Values.sasl }},SASL_PLAINTEXT://AIRY_POD_NAME.kafka-headless.AIRY_NAMESPACE:{{ .Values.saslPort }}{{- end }} + - name: AIRY_CONTROLLER_QUORUM_VOTERS + value: {{ template "kafka.controller-quorum-voters" . }} + - name: AIRY_FIRST_LISTENER_PORT + value: "{{ .Values.firstListenerPort }}" + - name: AIRY_FIRST_CONTROLLER_PORT + value: "{{ .Values.firstControllerPort }}" + - name: KAFKA_HEAP_OPTS + value: {{ .Values.heapOptions }} + {{- range $key, $value := .Values.configurationOverrides }} + - name: {{ printf "KAFKA_%s" $key | replace "." "_" | upper | quote }} + value: {{ $value | quote }} + {{- end }} + {{- if .Values.sasl }} + - name: KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND + value: "true" + - name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP + value: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT + - name: KAFKA_SASL_ENABLED_MECHANISMS + value: PLAIN + - name: KAFKA_OPTS + value: -Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf + {{- else }} + - name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP + value: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT + {{- end }} + args: ["kafka-server-start.sh", "/etc/kafka/server.properties"] + volumeMounts: + {{- if .Values.persistence.enabled }} + {{- $disksPerBroker := .Values.persistence.disksPerBroker | int }} + {{- range $k, $e := until $disksPerBroker }} + - name: datadir-{{$k}} + mountPath: /opt/kafka/data-{{$k}} + {{- end }} + {{- end }} + {{- if .Values.sasl }} + - name: kafka-jaas + mountPath: /etc/kafka/kafka_server_jaas.conf + subPath: kafka_jaas.conf + {{- end }} + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + initContainers: + - name: fix-permissions + image: "{{ .Values.global.busyboxImage }}" + imagePullPolicy: IfNotPresent + command: + - sh + - -c + - "chown -R 1000 /opt/kafka/" + volumeMounts: + {{- if .Values.persistence.enabled }} + {{- $disksPerBroker := .Values.persistence.disksPerBroker | int }} + {{- range $k, $e := until $disksPerBroker }} + - name: datadir-{{$k}} + mountPath: /opt/kafka/data-{{$k}} + {{- end }} + {{- end }} + volumes: + {{- if not .Values.persistence.enabled }} + - name: datadir-0 + emptyDir: {} + {{- end }} + {{- if .Values.sasl }} + - name: kafka-jaas + configMap: + name: kafka-jaas + name: kafka-jaas + {{- end }} + - name: kafka-helper-scripts + configMap: + name: kafka-helper-scripts + {{- if .Values.persistence.enabled }} + volumeClaimTemplates: + {{- $disksPerBroker := .Values.persistence.disksPerBroker | int }} + {{- $root := . }} + {{- range $k, $e := until $disksPerBroker }} + - metadata: + name: datadir-{{$k}} + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: "{{ $root.Values.persistence.size }}" + {{- if $root.Values.persistence.storageClass }} + {{- if (eq "-" $root.Values.persistence.storageClass) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ $root.Values.persistence.storageClass }}" + {{- end }} + {{- end }} +{{- end }} +{{- end }} diff --git a/infrastructure/kafka/3.3.1/helm/charts/kafka/values.yaml b/infrastructure/kafka/3.3.1/helm/charts/kafka/values.yaml new file mode 100644 index 0000000000..732f966572 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/kafka/values.yaml @@ -0,0 +1,31 @@ +brokers: 1 +image: ghcr.io/airyhq/infrastructure/kafka +imageTag: 3.3.1 +imagePullPolicy: IfNotPresent +imagePullSecrets: +podManagementPolicy: OrderedReady +updateStrategy: RollingUpdate +sasl: false +configurationOverrides: + "offsets.topic.replication.factor": "1" + "log.retention.hours": "-1" +port: 9092 +saslPort: 9093 +firstListenerPort: 31090 +firstControllerPort: 19092 +persistence: + enabled: true + size: 10Gi + disksPerBroker: 1 +heapOptions: "-Xms512M -Xmx512M" +resources: {} +podAnnotations: {} +nodeSelector: {} +tolerations: [] +nodeport: + enabled: true +prometheus: + enabled: false + exporterImage: danielqsj/kafka-exporter + exporterImageTag: v1.3.0 + exporterPort: 9308 diff --git a/infrastructure/kafka/3.3.1/helm/charts/schema-registry/Chart.yaml b/infrastructure/kafka/3.3.1/helm/charts/schema-registry/Chart.yaml new file mode 100644 index 0000000000..aa28809832 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/schema-registry/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +appVersion: "1.0" +description: A Helm chart for the karapace.io Schema Registry on Kubernetes +name: schema-registry +version: 1.0 diff --git a/infrastructure/kafka/3.3.1/helm/charts/schema-registry/templates/deployment.yaml b/infrastructure/kafka/3.3.1/helm/charts/schema-registry/templates/deployment.yaml new file mode 100644 index 0000000000..82fd26fae2 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/schema-registry/templates/deployment.yaml @@ -0,0 +1,58 @@ +{{- if .Capabilities.APIVersions.Has "apps/v1" }} +apiVersion: apps/v1 +{{- else }} +apiVersion: apps/v1beta2 +{{- end }} +kind: Deployment +metadata: + name: schema-registry + labels: + app: schema-registry + release: {{ .Release.Name }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: schema-registry + release: {{ .Release.Name }} + template: + metadata: + labels: + app: schema-registry + release: {{ .Release.Name }} + WorkerType: "{{ default "NodeGroup" .Values.global.workerType }}" + spec: + containers: + - name: schema-registry-server + image: "{{ .Values.containerRegistry}}/{{ .Values.image }}:{{ .Values.imageTag }}" + imagePullPolicy: "{{ .Values.imagePullPolicy }}" + ports: + - name: schema-registry + containerPort: {{ .Values.servicePort }} + protocol: TCP + resources: +{{ toYaml .Values.resources | indent 12 }} + env: + - name: KARAPACE_ADVERTISED_HOSTNAME + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KARAPACE_BOOTSTRAP_URI + value: {{ .Values.kafka.bootstrapServers }} + initContainers: + - name: wait + image: "{{ .Values.global.busyboxImage }}" + imagePullPolicy: IfNotPresent + command: ["/bin/sh", "/opt/provisioning/wait-for-minimum-kafkas.sh"] + env: + - name: KAFKA_BROKERS + value: {{ .Values.kafka.bootstrapServers }} + - name: REPLICAS + value: {{ .Values.kafka.minBrokers | quote }} + volumeMounts: + - name: kafka-helper-scripts + mountPath: /opt/provisioning + volumes: + - name: kafka-helper-scripts + configMap: + name: kafka-helper-scripts diff --git a/infrastructure/kafka/3.3.1/helm/charts/schema-registry/templates/service.yaml b/infrastructure/kafka/3.3.1/helm/charts/schema-registry/templates/service.yaml new file mode 100644 index 0000000000..7d17a5bd92 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/schema-registry/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: schema-registry + labels: + app: schema-registry + release: {{ .Release.Name }} +spec: + ports: + - name: schema-registry + port: {{ .Values.servicePort }} + selector: + app: schema-registry + release: {{ .Release.Name }} diff --git a/infrastructure/kafka/3.3.1/helm/charts/schema-registry/values.yaml b/infrastructure/kafka/3.3.1/helm/charts/schema-registry/values.yaml new file mode 100644 index 0000000000..838b64bc68 --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/charts/schema-registry/values.yaml @@ -0,0 +1,10 @@ +replicaCount: 1 +containerRegistry: ghcr.io/airyhq +image: infrastructure/schema-registry +imageTag: 2.0.1 +imagePullPolicy: Always +servicePort: 8081 +kafka: + bootstrapServers: kafka-headless:9092 + minBrokers: 1 +resources: {} diff --git a/infrastructure/kafka/3.3.1/helm/templates/kafka-helper-scripts.yaml b/infrastructure/kafka/3.3.1/helm/templates/kafka-helper-scripts.yaml new file mode 100644 index 0000000000..7620ff649b --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/templates/kafka-helper-scripts.yaml @@ -0,0 +1,36 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: kafka-helper-scripts +data: + wait-for-service-url.sh: | + #!/bin/sh + url=${SERVICE_URL} + delay=${2:-10} + service=$(echo ${url} | cut -d ":" -f1) + port=$(echo ${url} | cut -d ":" -f2) + + while ! nc -z ${service} ${port} >/dev/null 2>&1; do sleep ${delay}; echo Waiting for service ${service} to start...; done + + wait-for-minimum-kafkas.sh: | + #!/bin/sh + kafka_brokers=${KAFKA_BROKERS:-kafka:9092} + replicas=${REPLICAS:-1} + delay=${1:-10} + minimum_kafkas=0 + kafkas=$(echo ${kafka_brokers} | tr "," " ") + + while [ "${minimum_kafkas}" -lt "${replicas}" ]; do + minimum_kafkas=0 + for kafka in ${kafkas}; do + service=$(echo ${kafka} | cut -d ":" -f1) + port=$(echo ${kafka} | cut -d ":" -f2) + if $(nc -w 1 -z ${service} ${port} 2>/dev/null); then + minimum_kafkas=$((minimum_kafkas+1)) + fi + done + echo Available brokers: ${minimum_kafkas}, required brokers: ${replicas} + if [ "$minimum_kafkas" -lt "$replicas" ]; then + sleep ${delay} + fi + done diff --git a/infrastructure/kafka/3.3.1/helm/values.yaml b/infrastructure/kafka/3.3.1/helm/values.yaml new file mode 100644 index 0000000000..8e82f2dc9f --- /dev/null +++ b/infrastructure/kafka/3.3.1/helm/values.yaml @@ -0,0 +1,5 @@ +enabled: true +global: + containerRegistry: ghcr.io/airyhq + busyboxImage: ghcr.io/airyhq/infrastructure/busybox:latest + workerType: \ No newline at end of file diff --git a/infrastructure/kafka/3.3.1/image/Dockerfile b/infrastructure/kafka/3.3.1/image/Dockerfile new file mode 100644 index 0000000000..2429258fe8 --- /dev/null +++ b/infrastructure/kafka/3.3.1/image/Dockerfile @@ -0,0 +1,29 @@ +FROM openjdk:19-jdk-alpine3.16 + +LABEL maintainer "https://github.com/airyhq" +LABEL name="kafka" version=${INSTALL_KAFKA_VERSION} + +ENV INSTALL_KAFKA_VERSION 3.3.1 +ENV INSTALL_SCALA_VERSION 2.13 +ENV INSTALL_MIRROR="https://downloads.apache.org/" + +RUN apk update \ + apk upgrade \ + && apk add -t .build-deps curl ca-certificates coreutils su-exec bash \ + && mkdir -p /opt \ + && curl -sSL "${INSTALL_MIRROR}kafka/${INSTALL_KAFKA_VERSION}/kafka_${INSTALL_SCALA_VERSION}-${INSTALL_KAFKA_VERSION}.tgz" \ + | tar -xzf - -C /opt \ + && mv /opt/kafka_${INSTALL_SCALA_VERSION}-${INSTALL_KAFKA_VERSION} /opt/kafka \ + && adduser -DH -s /sbin/nologin kafka \ + && chown -R kafka: /opt/kafka \ + && rm -rf /tmp/* + +ENV PATH /sbin:/opt/kafka/bin/:$PATH + +WORKDIR /opt/kafka + +COPY config/server.properties /etc/kafka/server.properties +COPY /scripts/configure-kafka.sh /root/configure-kafka.sh +COPY /scripts/entrypoint.sh /root/entrypoint.sh + +ENTRYPOINT ["/root/entrypoint.sh"] diff --git a/infrastructure/kafka/3.3.1/image/Makefile b/infrastructure/kafka/3.3.1/image/Makefile new file mode 100644 index 0000000000..b370df017e --- /dev/null +++ b/infrastructure/kafka/3.3.1/image/Makefile @@ -0,0 +1,6 @@ +build: + docker build -t airy-kafka . + +release: build + docker tag airy-kafka ghcr.io/airyhq/infrastructure/kafka:3.3.1 + docker push ghcr.io/airyhq/infrastructure/kafka:3.3.1 diff --git a/infrastructure/kafka/3.3.1/image/config/server.properties b/infrastructure/kafka/3.3.1/image/config/server.properties new file mode 100644 index 0000000000..f864f9f5dd --- /dev/null +++ b/infrastructure/kafka/3.3.1/image/config/server.properties @@ -0,0 +1,6 @@ +# Default settings +process.roles=broker,controller +inter.broker.listener.name=PLAINTEXT +controller.listener.names=CONTROLLER +log.dirs=/opt/kafka/data-0/logs +# Injected settings diff --git a/infrastructure/kafka/3.3.1/image/scripts/configure-kafka.sh b/infrastructure/kafka/3.3.1/image/scripts/configure-kafka.sh new file mode 100755 index 0000000000..fe79139266 --- /dev/null +++ b/infrastructure/kafka/3.3.1/image/scripts/configure-kafka.sh @@ -0,0 +1,45 @@ +#!/bin/bash +set -eo pipefail + +BROKER_ID=$(echo "${POD_NAME}" | awk -F "-" '{ print $NF; }') +BROKER_PORT=$((AIRY_FIRST_LISTENER_PORT + BROKER_ID)) +CONTROLLER_PORT=$((AIRY_FIRST_CONTROLLER_PORT + BROKER_ID)) +LISTENERS=$(echo "${AIRY_LISTENERS}" | \ + sed "s/AIRY_BROKER_PORT/${BROKER_PORT}/g" | \ + sed "s/AIRY_CONTROLLER_PORT/${CONTROLLER_PORT}/g") +ADVERTISED_LISTENERS=$(echo "${AIRY_ADVERTISED_LISTENERS}" | \ + sed "s/AIRY_POD_NAME/${POD_NAME}/g" | \ + sed "s/AIRY_NAMESPACE/${POD_NAMESPACE}/g" | \ + sed "s/AIRY_HOST_IP/${HOST_IP}/g" | \ + sed "s/AIRY_BROKER_PORT/${BROKER_PORT}/g") +CONTROLLER_QUORUM_VOTERS=${AIRY_CONTROLLER_QUORUM_VOTERS} + +# Insert runtime configuration +{ + echo "node.id=${BROKER_ID}" + echo "listeners=${LISTENERS}" + echo "advertised.listeners=${ADVERTISED_LISTENERS}" + echo "controller.quorum.voters=${CONTROLLER_QUORUM_VOTERS}" +} >> /etc/kafka/server.properties + +# Insert all other KAFKA_* env variables as settings +for VAR in $(env) +do + if [[ $VAR =~ ^KAFKA_ && ! $VAR =~ ^KAFKA_VERSION && ! $VAR =~ ^KAFKA_[0-9] && ! $VAR =~ ^KAFKA_PORT && ! $VAR =~ ^KAFKA_OPTS && ! $VAR =~ ^KAFKA_SERVICE_ ]]; then + kafka_name=$(echo "$VAR" | sed -r "s/KAFKA_(.*)=.*/\1/g" | tr '[:upper:]' '[:lower:]' | tr _ .) + env_var=$(echo "$VAR" | sed -r "s/(.*)=.*/\1/g") + echo "$kafka_name=${!env_var}" >> /etc/kafka/server.properties + fi +done + +echo "Printing out the broker configuration" +cat /etc/kafka/server.properties + +if ! kafka-storage.sh info -c /etc/kafka/server.properties > /dev/null; then + echo "Cleaning up Kafka..." + rm -rf /opt/kafka/data-0/logs/__cluster_metadata-0/ + CLUSTER_ID=$(/opt/kafka/bin/kafka-storage.sh random-uuid) + /opt/kafka/bin/kafka-storage.sh format -t "${CLUSTER_ID}" -c /etc/kafka/server.properties --ignore-formatted + chown -R 1000 /opt/kafka/ +echo "Configuration done, starting Kafka..." +fi diff --git a/infrastructure/kafka/3.3.1/image/scripts/entrypoint.sh b/infrastructure/kafka/3.3.1/image/scripts/entrypoint.sh new file mode 100755 index 0000000000..5355421103 --- /dev/null +++ b/infrastructure/kafka/3.3.1/image/scripts/entrypoint.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e + +if [[ "$1" == kafka-server-start.sh && "$2" == /etc/kafka/server.properties ]];then + /root/configure-kafka.sh +else + echo "Unsupported arguments to docker entrypoint" + exit 1 +fi + +su-exec kafka "$@" From d7d7cd48de46131c58253ccbe9b01fc56b03e849 Mon Sep 17 00:00:00 2001 From: Bilge <116078532+bilge-cakmak@users.noreply.github.com> Date: Fri, 11 Nov 2022 10:24:23 +0100 Subject: [PATCH 18/28] [#3646] Airy CLI with GCP provider (#3904) * Update changelog # * [#3646] Working on airy cli update for gke provider * [#3646] Documentation for cli installation with GCP * [#3646] Airy cli with GCP provider * [#3646] Airy CLI with GCP provider [#3904] * [#3646] Airy CLI with GCP provider - After Backend Review [#3904] * Update GCP docs * Change heading to have a verb Co-authored-by: ljupcovangelski --- cli/go.mod | 16 +- cli/go.sum | 20 + cli/pkg/cmd/create/BUILD | 3 - cli/pkg/providers/BUILD | 2 +- cli/pkg/providers/aws/BUILD | 1 - cli/pkg/providers/aws/aws.go | 4 - cli/pkg/providers/gcp/BUILD | 16 + cli/pkg/providers/gcp/gcp.go | 83 ++ cli/pkg/providers/minikube/minikube.go | 4 - cli/pkg/providers/provider.go | 6 +- cli/pkg/workspace/template/src/airy.yaml | 2 + docs/cli-doc/go.mod | 5 +- docs/cli-doc/go.sum | 9 + docs/docs/getting-started/installation/gcp.md | 181 +++ .../installation/introduction.md | 7 + docs/sidebars.js | 1 + docs/static/icons/gcp.svg | 6 + go.mod | 370 ++++-- go.sum | 1150 +---------------- go_repositories.bzl | 72 +- infrastructure/terraform/install/uninstall.sh | 6 +- tools/update-deps/go.mod | 2 +- tools/update-deps/go.sum | 2 + 23 files changed, 696 insertions(+), 1272 deletions(-) create mode 100644 cli/pkg/providers/gcp/BUILD create mode 100644 cli/pkg/providers/gcp/gcp.go create mode 100644 docs/cli-doc/go.sum create mode 100644 docs/docs/getting-started/installation/gcp.md create mode 100644 docs/static/icons/gcp.svg diff --git a/cli/go.mod b/cli/go.mod index be34d12766..ebd2882027 100644 --- a/cli/go.mod +++ b/cli/go.mod @@ -58,9 +58,12 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/gnostic v0.6.9 // indirect + github.com/google/go-cmp v0.5.8 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.3.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.1.0 // indirect github.com/googleapis/gax-go/v2 v2.4.0 // indirect + github.com/googleapis/go-type-adapters v1.0.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-getter v1.6.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect @@ -72,7 +75,7 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.11.2 // indirect + github.com/klauspost/compress v1.15.7 // indirect github.com/kr/text v0.2.0 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/mailru/easyjson v0.7.7 // indirect @@ -94,6 +97,7 @@ require ( github.com/subosito/gotenv v1.3.0 // indirect github.com/ulikunitz/xz v0.5.8 // indirect github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect + go.opencensus.io v0.23.0 // indirect golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect golang.org/x/net v0.0.0-20220630215102-69896b714898 // indirect golang.org/x/oauth2 v0.0.0-20220630143837-2104d58473e0 // indirect @@ -101,18 +105,10 @@ require ( golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect - go.opencensus.io v0.23.0 // indirect - golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898 // indirect - golang.org/x/net v0.0.0-20220630215102-69896b714898 // indirect - golang.org/x/oauth2 v0.0.0-20220630143837-2104d58473e0 // indirect - golang.org/x/sys v0.0.0-20220624220833-87e55d714810 // indirect - golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/time v0.0.0-20220411224347-583f2d630306 // indirect golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect google.golang.org/api v0.86.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f // indirect + google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7 // indirect google.golang.org/grpc v1.47.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/cli/go.sum b/cli/go.sum index 766f5e9bf4..ac0053adf6 100644 --- a/cli/go.sum +++ b/cli/go.sum @@ -32,6 +32,7 @@ cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Ud cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= cloud.google.com/go v0.100.2 h1:t9Iw5QH5v4XtlEQaCtUY7x6sCABps8sW0acw7e2WQ6Y= cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0 h1:DAq3r8y4mDgyB/ZPJ9v/5VJNqjgJAxTn6ZYLlUywOu8= cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= @@ -45,6 +46,7 @@ cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6m cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= cloud.google.com/go/compute v1.6.1 h1:2sMmt8prCn7DPaG4Pmh0N3Inmc8cT8ae5k1M6VJ9Wqc= cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0 h1:v/k9Eueb8aAJ0vZuxKMrgm6kPhCLZU9HxFU+AFDs9Uk= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= @@ -62,6 +64,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0 h1:6RRlFMv1omScs6iq2hfE3IvgE+l6RfJPampq8UZc5TU= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.22.1 h1:F6IlQJZrZM++apn9V5/VfS3gbTUYg98PS3EMQAzqtfg= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= @@ -206,6 +209,7 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -333,6 +337,7 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= @@ -365,6 +370,7 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0 h1:zO8WHNx/MYiAKJ3d5spxZXZE6KHmIQGQcAzwUzV7qQw= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= @@ -373,8 +379,10 @@ github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0 github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= github.com/googleapis/gax-go/v2 v2.3.0 h1:nRJtk3y8Fm770D42QV6T90ZnvFZyk7agSo3Q+Z9p3WI= github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0 h1:dS9eYAjhrE2RjmzYw2XAPvcXfmcQLtFEQWn0CR82awk= github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -424,6 +432,7 @@ github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -583,6 +592,7 @@ github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= @@ -663,6 +673,7 @@ golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220507011949-2cf3adece122/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898 h1:SLP7Q4Di66FONjDJbCYrCRrh97focO6sLogHO7/g8F0= golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -873,10 +884,13 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbuf golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e h1:CsOuNlbOuf0mzxJIefr6Q4uAUetRUwZE4qt7VfzP+xo= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 h1:EH1Deb8WZJ0xc0WK//leUHXcX9aLE5SymusoTmMZye8= golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -896,6 +910,7 @@ golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220411224347-583f2d630306 h1:+gHMid33q6pen7kv9xvT+JRinntgeXO2AeZVd0AWD3w= golang.org/x/time v0.0.0-20220411224347-583f2d630306/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -964,6 +979,7 @@ golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6Ug golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f h1:uF6paiQQebLeSXkrTqHqz0MXhXXS1KgF41eUdBNvxK0= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1132,6 +1148,7 @@ google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0 h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8= google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -1182,6 +1199,7 @@ gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA= gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1214,10 +1232,12 @@ k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc= k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.70.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= k8s.io/kube-openapi v0.0.0-20220413171646-5e7f5fdc6da6 h1:nBQrWPlrNIiw0BsX6a6MKr1itkm0ZS0Nl97kNLitFfI= k8s.io/kube-openapi v0.0.0-20220413171646-5e7f5fdc6da6/go.mod h1:daOouuuwd9JXpv1L7Y34iV3yf6nxzipkKMWWlqlvK9M= +k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8/go.mod h1:mbJ+NSUoAhuR14N0S63bPkh8MGVSo3VYSGZtH/mfMe0= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= diff --git a/cli/pkg/cmd/create/BUILD b/cli/pkg/cmd/create/BUILD index 62bf4ec658..e8ea073873 100644 --- a/cli/pkg/cmd/create/BUILD +++ b/cli/pkg/cmd/create/BUILD @@ -11,12 +11,9 @@ go_library( }, deps = [ "//cli/pkg/console", - "//cli/pkg/helm", "//cli/pkg/providers", "//cli/pkg/workspace", - "//lib/go/k8s", "@com_github_spf13_cobra//:cobra", - "@com_github_spf13_viper//:viper", "@com_github_twinproduction_go_color//:go-color", "@in_gopkg_segmentio_analytics_go_v3//:analytics-go_v3", ], diff --git a/cli/pkg/providers/BUILD b/cli/pkg/providers/BUILD index b6a59adcc8..211e235564 100644 --- a/cli/pkg/providers/BUILD +++ b/cli/pkg/providers/BUILD @@ -7,8 +7,8 @@ go_library( visibility = ["//visibility:public"], deps = [ "//cli/pkg/console", - "//cli/pkg/kube", "//cli/pkg/providers/aws", + "//cli/pkg/providers/gcp", "//cli/pkg/providers/minikube", "//cli/pkg/workspace", "//cli/pkg/workspace/template", diff --git a/cli/pkg/providers/aws/BUILD b/cli/pkg/providers/aws/BUILD index bba406d29b..b4cae59f7c 100644 --- a/cli/pkg/providers/aws/BUILD +++ b/cli/pkg/providers/aws/BUILD @@ -14,7 +14,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//cli/pkg/console", - "//cli/pkg/kube", "//cli/pkg/workspace", "//cli/pkg/workspace/template", "//lib/go/tools", diff --git a/cli/pkg/providers/aws/aws.go b/cli/pkg/providers/aws/aws.go index 8d817749ae..28702b969a 100644 --- a/cli/pkg/providers/aws/aws.go +++ b/cli/pkg/providers/aws/aws.go @@ -55,10 +55,6 @@ func (p *provider) PreInstallation(workspacePath string) (string, error) { return installDir, nil } -func (p *provider) PostInstallation(providerConfig map[string]string, namespace string, dir workspace.ConfigDir) error { - return nil -} - type KubeConfig struct { ClusterName string EndpointUrl string diff --git a/cli/pkg/providers/gcp/BUILD b/cli/pkg/providers/gcp/BUILD new file mode 100644 index 0000000000..a1f574cf1e --- /dev/null +++ b/cli/pkg/providers/gcp/BUILD @@ -0,0 +1,16 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "gcp", + srcs = ["gcp.go"], + importpath = "cli/pkg/providers/gcp", + visibility = ["//visibility:public"], + deps = [ + "//cli/pkg/console", + "//cli/pkg/workspace", + "//cli/pkg/workspace/template", + "//lib/go/tools", + "@com_github_hashicorp_go_getter//:go-getter", + "@in_gopkg_segmentio_analytics_go_v3//:analytics-go_v3", + ], +) diff --git a/cli/pkg/providers/gcp/gcp.go b/cli/pkg/providers/gcp/gcp.go new file mode 100644 index 0000000000..c7b3488537 --- /dev/null +++ b/cli/pkg/providers/gcp/gcp.go @@ -0,0 +1,83 @@ +package gcp + +import ( + "cli/pkg/console" + + "cli/pkg/workspace" + "cli/pkg/workspace/template" + "io" + "os" + "os/exec" + "strings" + + "github.com/airyhq/airy/lib/go/tools" + + getter "github.com/hashicorp/go-getter" + "gopkg.in/segmentio/analytics-go.v3" +) + +type provider struct { + w io.Writer + analytics console.AiryAnalytics +} + +func New(w io.Writer, analytics *console.AiryAnalytics) *provider { + return &provider{ + w: w, + analytics: *analytics, + } +} + +func (p *provider) GetOverrides() template.Variables { + return template.Variables{} +} + +func (p *provider) CheckEnvironment() error { + return workspace.CheckBinaries([]string{"terraform", "gcloud"}) +} +func (p *provider) PreInstallation(workspacePath string) (string, error) { + remoteUrl := "github.com/airyhq/airy/infrastructure/terraform/install" + installDir := workspacePath + "/terraform" + installFlags := strings.Join([]string{"PROVIDER=gcp-gke", "WORKSPACE=" + workspacePath}, "\n") + + gitGetter := &getter.Client{ + Src: remoteUrl, + Dst: installDir, + Dir: true, + } + if err := gitGetter.Get(); err != nil { + return "", err + } + err := os.WriteFile(installDir+"/install.flags", []byte(installFlags), 0666) + if err != nil { + return "", err + } + return installDir, nil +} + +type KubeConfig struct { + ClusterName string + EndpointUrl string + CertificateData string +} + +func (p *provider) Provision(providerConfig map[string]string, dir workspace.ConfigDir) error { + installPath := dir.GetPath(".") + id := tools.RandString(8) + p.analytics.Track(analytics.Identify{ + AnonymousId: id, + Traits: analytics.NewTraits(). + Set("provider", "GCP"), + }) + cmd := exec.Command("/bin/bash", "install.sh") + cmd.Dir = installPath + cmd.Stdin = os.Stdin + cmd.Stderr = p.w + cmd.Stdout = p.w + err := cmd.Run() + + if err != nil { + console.Exit("Error with Terraform installation", err) + } + return nil +} diff --git a/cli/pkg/providers/minikube/minikube.go b/cli/pkg/providers/minikube/minikube.go index 1090272b03..42c866ee32 100644 --- a/cli/pkg/providers/minikube/minikube.go +++ b/cli/pkg/providers/minikube/minikube.go @@ -85,7 +85,3 @@ func (p *provider) Provision(providerConfig map[string]string, dir workspace.Con } return nil } - -func (p *provider) PostInstallation(providerConfig map[string]string, namespace string, dir workspace.ConfigDir) error { - return nil -} diff --git a/cli/pkg/providers/provider.go b/cli/pkg/providers/provider.go index 56faf0e4ba..1d18e3f148 100644 --- a/cli/pkg/providers/provider.go +++ b/cli/pkg/providers/provider.go @@ -3,6 +3,7 @@ package providers import ( "cli/pkg/console" "cli/pkg/providers/aws" + "cli/pkg/providers/gcp" "cli/pkg/providers/minikube" "cli/pkg/workspace" "cli/pkg/workspace/template" @@ -15,6 +16,7 @@ type ProviderName string const ( Minikube ProviderName = "minikube" Aws ProviderName = "aws" + Gcp ProviderName = "gcp" ) type Provider interface { @@ -22,7 +24,6 @@ type Provider interface { GetOverrides() template.Variables CheckEnvironment() error PreInstallation(workspace string) (string, error) - PostInstallation(providerConfig map[string]string, namespace string, dir workspace.ConfigDir) error } func MustGet(providerName ProviderName, w io.Writer, analytics *console.AiryAnalytics) Provider { @@ -34,5 +35,8 @@ func MustGet(providerName ProviderName, w io.Writer, analytics *console.AiryAnal return aws.New(w, analytics) } + if providerName == Gcp { + return gcp.New(w, analytics) + } panic(fmt.Sprintf("unknown provider \"%v\"", providerName)) } diff --git a/cli/pkg/workspace/template/src/airy.yaml b/cli/pkg/workspace/template/src/airy.yaml index 77e2966dad..d62357691b 100644 --- a/cli/pkg/workspace/template/src/airy.yaml +++ b/cli/pkg/workspace/template/src/airy.yaml @@ -2,6 +2,7 @@ global: host: {{ .Host }} {{- end }} +{{- if (or .NgrokEnabled .Https .LoadbalancerAnnotations) }} ingress-controller: {{- if .NgrokEnabled }} ngrokEnabled: {{ .NgrokEnabled }} @@ -15,6 +16,7 @@ ingress-controller: {{ $k }}: {{ $v }} {{- end }} {{- end }} +{{- end }} {{- if .TrackingDisabled }} tools: segment: diff --git a/docs/cli-doc/go.mod b/docs/cli-doc/go.mod index b7a47a3bd9..6f66a72243 100644 --- a/docs/cli-doc/go.mod +++ b/docs/cli-doc/go.mod @@ -2,8 +2,11 @@ module main go 1.18 +require github.com/spf13/cobra v1.5.0 + require ( - github.com/spf13/cobra v1.5.0 + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect ) replace github.com/airyhq/airy/cli => ../../cli diff --git a/docs/cli-doc/go.sum b/docs/cli-doc/go.sum new file mode 100644 index 0000000000..f7774fdee3 --- /dev/null +++ b/docs/cli-doc/go.sum @@ -0,0 +1,9 @@ +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= diff --git a/docs/docs/getting-started/installation/gcp.md b/docs/docs/getting-started/installation/gcp.md new file mode 100644 index 0000000000..63883bd372 --- /dev/null +++ b/docs/docs/getting-started/installation/gcp.md @@ -0,0 +1,181 @@ +--- +title: Run Airy on GCP +sidebar_label: GCP +--- + +import useBaseUrl from '@docusaurus/useBaseUrl'; +import TLDR from "@site/src/components/TLDR"; +import SuccessBox from "@site/src/components/SuccessBox"; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ButtonBox from "@site/src/components/ButtonBox"; +import DiamondSVG from "@site/static/icons/diamond.svg"; + + +Run Airy Core on GCP with one command. + + +The goal of this document is to provide an overview of how to run Airy Core on Google Cloud Platform, using the [GCP Kubernetes Engine](https://cloud.google.com/kubernetes-engine). + +## Services used + +Apart from an Google Kubernetes Engine cluster, `airy create` will create of all the necessary GCP +resources for Airy Core to run: + +| Service | Resources | Pricing | Description | Overwrite [^1] | +| -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | +| [**VPC**](https://cloud.google.com/vpc/docs/vpc) | 1 VPC, 36 subnets with allowed Public IPs, 1 additional route table, 1 Internet gateway, DNS enabled | [ VPC pricing calculation](https://cloud.google.com/vpc/network-pricing#lb) | VPC which will contain all the created compute and network resources | Yes | +| [**GKE**](https://cloud.google.com/kubernetes-engine/docs) | 1 GKE cluster | [ GKE pricing calculation](https://cloud.google.com/products/calculator#id=e178295f-5232-4319-8a16-708052357202) | Kubernetes cluster to store all the Airy Core resources | No | +| [**GCE**](https://cloud.google.com/kubernetes-engine/docs/concepts/node-images#cos) | 6 Google Compute Engine Instances | [GCE pricing calculation](https://cloud.google.com/products/calculator#id=0394acda-ce3a-4769-a453-9e2ea6ca4291) | The instances are a part of the `Node Pool` attached to the GKE cluster. The default instance type is: `n1-standard-2`, OS type: `Container-Optimized OS`. | Yes | +| [**CLB**](https://cloud.google.com/load-balancing/docs/network/networklb-target-pools) | 1 Cloud Load Balancer | [CLB pricing calculation](https://cloud.google.com/products/calculator#id=da086850-b923-475e-a4bc-9edf3d73c9ed) | Network (target pool-based)Load Balancer created by the ingress controller Kubernetes service | No | + +[^1]: Options which can be overwritten with flags to the `airy create` command. + +## Configure + +:::note + +Prior to starting this guide, you must create an [GCP account](https://cloud.google.com/free). To create the cluster you must setup your local GCP environment, by [configuring your local GCP profile](https://cloud.google.com/sdk/docs/install-sdk) +for your GCP account where all the resources will be created. + +::: + +Once you have installed the GCloud CLI, you now need to configure the application +to be able to connect to your GCP account: + +``` +gcloud init +``` + +Through `gcloud init`, the GCloud CLI will prompt you for four pieces of +information. + +``` +gcloud init +Default region name [None]: us-central1 +Default output format [None]: json +``` + +## Install + +Download and install the [Airy CLI](cli/introduction.md). + +:::warning + +If you want to use Airy Core with auto-generated HTTPS certificates, refer to the [Let's Encrypt section](/getting-started/installation/gcp#https-using-lets-encrypt) for customizing your `airy.yaml` file before proceeding. + +::: + +Now you can run the following command in your Airy workspace, which will create a Kubernetes cluster with `Airy Core` in your Google account: + +```bash +airy create --provider=gcp +``` + +This will execute the following actions: + +1. Download two Terraform modules inside the `terraform` directory in the workspace. First module is for creating the GKE cluster, the second is for deploying `Airy Core` on that cluster. +2. Run the `install.sh` bash script inside the `terraform` directory. +3. Create an GKE cluster in your Google account (applying the `gcp-gke` state). +4. Deploy `Airy Core` in that cluster (applying the `airy-core` state). +5. Print URLs for accessing the UI and API. + +If you want to customize your `Airy Core` instance please see our [Configuration +Section](configuration.md). + +After the installation, you can also interact with the components of `Airy Core` +with the [kubectl](https://kubernetes.io/docs/tasks/tools/) command line +utility. You can find the kubeconfig of your Airy Core instance in +`WORKSPACE/terraform/kube.conf`. + +## Verify + +After the installation process, you can verify that all the pods are running with: + +``` +export KUBECONFIG=./terraform/kube.conf +kubectl get pods +``` + +## HTTPS using Let's Encrypt + +You can customize your installation of `Airy Core` to install an ingress controller which has an enabled `Let's Encrypt` capability. The ingress controller will register and renew the certificates for you automatically. + +### Setup your DNS + +You should create an A DNS record for the specified public FQDN to point to the hostname of the LoadBalancer, created by GCP for the ingress service: + +```sh +kubectl get --namespace kube-system service ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}{"\n"}' +``` + +Then edit your `airy.yaml` file and add the following configuration + +```sh +global: + host: myairy.myhostname.com + ingress: + letsencrypt: true +ingress-controller: + https: true + letsencryptEmail: "mymail@myhostname.com" +``` + +The `ingress.host` value should be set to your desired hostname. Configure the e-mail address you want to use for your Let's Encrypt registration under `ingress.letsencryptEmail`. + +### Upgrade the instance + +If the ingress controller is started before the DNS record is added, the initial Let's Encrypt requests will fail and then all the following registration attempts will be blocked and throttled. That is why the generation of the Let's Encrypt certificates is disabled by default. In order to complete the setup, you must run the upgrade command. + +```sh +airy upgrade +``` + +After this, your `Airy Core` will be reachable under HTTPS and on your desired hostname (for example https://myairy.myhostname.com). + +## Integrate public webhooks + +The public webhooks will be accessible on the public hostname, at a path specific for each source individually. +Refer to the [sources documentation](/connectors/sources/introduction) for more information. + +To get the public URL of your GCP Airy Core installation run: + +```sh +airy api endpoint +``` + +## Customize your Airy Core installation + +To customize your Airy Core installation, you can create an initial config file using the following command: + +```sh +airy create --provider gcp --init-only +``` + +Then edit the `airy.yaml` file to your prefferences before deploying Airy with: + +```sh +airy create --provider gcp +``` + +## Next steps + +Now that you have a running installation of `Airy Core` on GCP you can connect it +to messaging sources. Check out our Quickstart guide to learn more: + +} +iconInvertible={true} +title='To the Quick Start' +description='Learn the Airy Basics with our Quick Start' +link='getting-started/quickstart' +/> + +## Third party tools + +Third party tools can be activated in the `airy.yaml` configuration file, under the `tools` section. +For more details please see our [Configuration Section](configuration.md). + +## Uninstall Airy Core + +To uninstall `Airy Core` from GCP, run the `uninstall.sh` script located in the `WORKSPACE/terraform` directory. This script will run `terraform destroy` on both the `kubernetes` (GKE) and the `airy-core` state. diff --git a/docs/docs/getting-started/installation/introduction.md b/docs/docs/getting-started/installation/introduction.md index 9268df3c93..3105ad163a 100644 --- a/docs/docs/getting-started/installation/introduction.md +++ b/docs/docs/getting-started/installation/introduction.md @@ -11,6 +11,7 @@ import TerraformSVG from "@site/static/icons/terraform.svg"; import Minikube from "@site/static/icons/minikube.svg"; import RocketSVG from "@site/static/icons/rocket.svg"; import HelmSVG from "@site/static/icons/helm.svg"; +import GcpSVG from "@site/static/icons/gcp.svg"; @@ -62,6 +63,12 @@ description='Step by step guide to run Airy Core on AWS' link='getting-started/installation/aws' /> } +title='Production ready environment with GCP' +description='Step by step guide to run Airy Core on GCP' +link='getting-started/installation/gcp' +/> +} title='Cloud deployment with Terraform' description='Step by step guide to run Airy Core in the cloud managed by Terraform' diff --git a/docs/sidebars.js b/docs/sidebars.js index 6638f37132..b0a6cfd1ad 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -9,6 +9,7 @@ module.exports = { 'getting-started/installation/introduction', 'getting-started/installation/minikube', 'getting-started/installation/aws', + 'getting-started/installation/gcp', 'getting-started/installation/terraform', 'getting-started/installation/helm', 'getting-started/installation/configuration', diff --git a/docs/static/icons/gcp.svg b/docs/static/icons/gcp.svg new file mode 100644 index 0000000000..6959a25853 --- /dev/null +++ b/docs/static/icons/gcp.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/go.mod b/go.mod index e316d56400..c1740a07a2 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,203 @@ go 1.18 // Automatically generated by running //tools/update-deps require ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + github.com/Masterminds/sprig v2.22.0+incompatible github.com/TwinProduction/go-color v1.0.0 github.com/aws/aws-sdk-go v1.44.21 @@ -13,8 +210,6 @@ require ( github.com/aws/aws-sdk-go-v2/service/ec2 v1.44.0 github.com/aws/aws-sdk-go-v2/service/eks v1.21.1 github.com/aws/aws-sdk-go-v2/service/iam v1.18.5 - github.com/golang-jwt/jwt v3.2.2+incompatible - github.com/gorilla/mux v1.8.0 github.com/kr/pretty v0.3.0 github.com/mitchellh/go-homedir v1.1.0 github.com/spf13/cobra v1.5.0 @@ -22,30 +217,19 @@ require ( github.com/thanhpk/randstr v1.0.4 github.com/txn2/txeh v1.3.0 goji.io v2.0.2+incompatible - golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 gopkg.in/segmentio/analytics-go.v3 v3.1.0 gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.24.2 k8s.io/apimachinery v0.24.2 k8s.io/client-go v0.24.2 -) - -require ( cloud.google.com/go v0.102.0 // indirect cloud.google.com/go/compute v1.7.0 // indirect - github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/BurntSushi/toml v1.1.0 // indirect - github.com/MakeNowJust/heredoc v1.0.0 // indirect cloud.google.com/go/iam v0.3.0 // indirect cloud.google.com/go/storage v1.22.1 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect - github.com/Masterminds/semver/v3 v3.1.1 // indirect - github.com/Masterminds/sprig/v3 v3.2.2 // indirect - github.com/Masterminds/squirrel v1.5.3 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect - github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect github.com/aws/aws-sdk-go-v2 v1.16.4 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.12.2 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.5 // indirect @@ -56,92 +240,134 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.11.5 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.16.6 // indirect github.com/aws/smithy-go v1.11.2 // indirect - github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect - github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 // indirect - github.com/containerd/containerd v1.6.6 // indirect - github.com/cyphar/filepath-securejoin v0.2.3 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/docker/cli v20.10.17+incompatible // indirect - github.com/docker/distribution v2.8.1+incompatible // indirect - github.com/docker/docker v20.10.17+incompatible // indirect - github.com/docker/docker-credential-helpers v0.6.4 // indirect - github.com/docker/go-connections v0.4.0 // indirect - github.com/docker/go-metrics v0.0.1 // indirect - github.com/docker/go-units v0.4.0 // indirect github.com/emicklei/go-restful v2.15.0+incompatible // indirect - github.com/emicklei/go-restful/v3 v3.8.0 // indirect - github.com/evanphx/json-patch v5.6.0+incompatible // indirect - github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect - github.com/fatih/color v1.13.0 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect - github.com/ghodss/yaml v1.0.0 // indirect - github.com/go-errors/errors v1.4.2 // indirect - github.com/go-gorp/gorp/v3 v3.0.2 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.21.1 // indirect - github.com/gobwas/glob v0.2.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt v3.2.2+incompatible github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/google/btree v1.1.2 // indirect github.com/google/gnostic v0.6.9 // indirect github.com/google/go-cmp v0.5.8 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.3.0 // indirect - github.com/googleapis/gnostic v0.5.5 // indirect - github.com/gosuri/uitable v0.0.4 // indirect - github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.1.0 // indirect github.com/googleapis/gax-go/v2 v2.4.0 // indirect - github.com/gorilla/mux v1.8.0 + github.com/googleapis/go-type-adapters v1.0.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-getter v1.6.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.1.0 // indirect - github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.3.2 // indirect - github.com/iancoleman/strcase v0.2.0 // indirect - github.com/imdario/mergo v0.3.12 // indirect + github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/jmoiron/sqlx v1.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.15.7 // indirect github.com/kr/text v0.2.0 // indirect + github.com/magiconair/properties v1.8.6 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mitchellh/go-testing-interface v1.0.0 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pelletier/go-toml/v2 v2.0.1 // indirect + github.com/rogpeppe/go-internal v1.8.1 // indirect + github.com/segmentio/backo-go v0.0.0-20200129164019-23eae7c10bd3 // indirect + github.com/spf13/afero v1.8.2 // indirect + github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/subosito/gotenv v1.3.0 // indirect + github.com/ulikunitz/xz v0.5.8 // indirect + github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect + go.opencensus.io v0.23.0 // indirect + golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect + golang.org/x/net v0.0.0-20220630215102-69896b714898 // indirect + golang.org/x/oauth2 v0.0.0-20220630143837-2104d58473e0 // indirect + golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e // indirect + golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect + golang.org/x/text v0.3.7 // indirect + golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect + golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect + google.golang.org/api v0.86.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7 // indirect + google.golang.org/grpc v1.47.0 // indirect + google.golang.org/protobuf v1.28.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.66.4 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/klog v1.0.0 // indirect + k8s.io/klog/v2 v2.70.0 // indirect + k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8 // indirect + k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect + sigs.k8s.io/json v0.0.0-20220525155127-227cbc7cc124 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect + sigs.k8s.io/yaml v1.3.0 // indirect + github.com/golang-jwt/jwt v3.2.2+incompatible + github.com/gorilla/mux v1.8.0 + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/BurntSushi/toml v1.1.0 // indirect + github.com/MakeNowJust/heredoc v1.0.0 // indirect + github.com/Masterminds/semver/v3 v3.1.1 // indirect + github.com/Masterminds/sprig/v3 v3.2.2 // indirect + github.com/Masterminds/squirrel v1.5.3 // indirect + github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 // indirect + github.com/containerd/containerd v1.6.6 // indirect + github.com/cyphar/filepath-securejoin v0.2.3 // indirect + github.com/docker/cli v20.10.17+incompatible // indirect + github.com/docker/distribution v2.8.1+incompatible // indirect + github.com/docker/docker v20.10.17+incompatible // indirect + github.com/docker/docker-credential-helpers v0.6.4 // indirect + github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-metrics v0.0.1 // indirect + github.com/docker/go-units v0.4.0 // indirect + github.com/emicklei/go-restful/v3 v3.8.0 // indirect + github.com/evanphx/json-patch v5.6.0+incompatible // indirect + github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect + github.com/fatih/color v1.13.0 // indirect + github.com/ghodss/yaml v1.0.0 // indirect + github.com/go-errors/errors v1.4.2 // indirect + github.com/go-gorp/gorp/v3 v3.0.2 // indirect + github.com/gobwas/glob v0.2.3 // indirect + github.com/google/btree v1.1.2 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect + github.com/googleapis/gnostic v0.5.5 // indirect + github.com/gosuri/uitable v0.0.4 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/hashicorp/golang-lru v0.5.4 // indirect + github.com/jmoiron/sqlx v1.3.5 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect github.com/lib/pq v1.10.6 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect - github.com/magiconair/properties v1.8.6 // indirect - github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect - github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mittwald/go-helm-client v0.11.2 // indirect github.com/moby/locker v1.0.1 // indirect github.com/moby/spdystream v0.2.0 // indirect github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/morikuni/aec v1.0.0 // indirect - github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 // indirect - github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.1 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect @@ -150,60 +376,28 @@ require ( github.com/prometheus/common v0.35.0 // indirect github.com/prometheus/procfs v0.7.3 // indirect github.com/rivo/uniseg v0.2.0 // indirect - github.com/rogpeppe/go-internal v1.8.1 // indirect github.com/rubenv/sql-migrate v1.1.2 // indirect github.com/russross/blackfriday v1.6.0 // indirect - github.com/segmentio/backo-go v0.0.0-20200129164019-23eae7c10bd3 // indirect github.com/shopspring/decimal v1.3.1 // indirect github.com/sirupsen/logrus v1.8.1 // indirect - github.com/spf13/afero v1.8.2 // indirect - github.com/spf13/cast v1.5.0 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.8.0 // indirect - github.com/subosito/gotenv v1.3.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/xlab/treeprint v1.1.0 // indirect - github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd // indirect - golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect - golang.org/x/net v0.0.0-20220630215102-69896b714898 // indirect - golang.org/x/oauth2 v0.0.0-20220630143837-2104d58473e0 // indirect golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect - golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e // indirect - golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect - golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7 // indirect - github.com/ulikunitz/xz v0.5.8 // indirect - github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c // indirect - go.opencensus.io v0.23.0 // indirect - google.golang.org/api v0.86.0 // indirect - google.golang.org/grpc v1.47.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect gopkg.in/gorp.v1 v1.7.2 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/ini.v1 v1.66.4 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect helm.sh/helm/v3 v3.9.0 // indirect k8s.io/apiextensions-apiserver v0.24.2 // indirect k8s.io/apiserver v0.24.2 // indirect k8s.io/cli-runtime v0.24.2 // indirect k8s.io/component-base v0.24.2 // indirect k8s.io/helm v2.17.0+incompatible // indirect - k8s.io/klog v1.0.0 // indirect - k8s.io/klog/v2 v2.70.0 // indirect - k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8 // indirect k8s.io/kubectl v0.24.2 // indirect - k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect oras.land/oras-go v1.2.0 // indirect - sigs.k8s.io/json v0.0.0-20220525155127-227cbc7cc124 // indirect sigs.k8s.io/kustomize/api v0.11.5 // indirect sigs.k8s.io/kustomize/kyaml v0.13.7 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + github.com/iancoleman/strcase v0.2.0 // indirect + golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 ) diff --git a/go.sum b/go.sum index ef450e4cc0..fa361eb73c 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= -bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -9,8 +7,6 @@ cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxK cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.51.0 h1:PvKAVQWCtlGUSlZkGW3QLelKaWq7KYv/MW1EboG8bfM= -cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= @@ -23,7 +19,6 @@ cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmW cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0 h1:at8Tk2zUz63cLPR0JPWm5vp77pEZmzxEQBEfRKn1VV8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= @@ -32,17 +27,14 @@ cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aD cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0cM= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= -cloud.google.com/go/bigquery v1.0.1 h1:hL+ycaJpVE9M7nLoiXb/Pn10ENE2u+oddxbD8uu0ZVU= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0 h1:PQcPefKFdaIzjQFbiyOgAqyx8q5djaE7x9Sqe712DPA= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= @@ -50,276 +42,100 @@ cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6m cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= -cloud.google.com/go/datastore v1.0.0 h1:Kt+gOPPp2LEPWp8CSfxhsM8ik9CcyE/gYu+0r+RnZvM= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0 h1:/May9ojXjRkPBNVrq+oWLqmWCkr4OU5uRY29bu0mRyQ= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0 h1:9x7Bx0A9R5/M9jibeJeZWqjeVEIxYW9fZYqB9a70/bY= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= -cloud.google.com/go/pubsub v1.0.1 h1:W9tAK3E57P75u0XLLR82LZyw8VpAnhmyTOxW9qzmyj8= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1 h1:ukjixP1wl0LpnZ6LWtZJ0mX5tBmjp1f8Sqer8Z2OMUU= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0 h1:VV2nUM3wwLLGh9lSABFgZMjInyUbJeaRSE64WuAIQ+4= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= -github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v56.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.9.6 h1:5YWtOnckcudzIw8lPPBcWOnmIFWMtHci1ZWAZulMSx0= -github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= -github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM= github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= -github.com/Azure/go-autorest/autorest v0.11.20/go.mod h1:o3tqFY+QR40VOlk+pV4d77mORO64jOXSgEnPQgLK6JY= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.2 h1:O1X4oexUxnZCaEUGsvMnr8ZGj8HI37tNezwY4npRqA0= -github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= -github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= -github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/adal v0.9.15/go.mod h1:tGMin8I49Yij6AQ+rvV+Xa/zwxYQB5hmsd6DkfAx2+A= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= -github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw= -github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Masterminds/sprig/v3 v3.2.2 h1:17jRggJu518dr3QaafizSXOjKYp94wKfABxUmyxvxX8= github.com/Masterminds/sprig/v3 v3.2.2/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= -github.com/Masterminds/squirrel v1.5.2 h1:UiOEi2ZX4RCSkpiNDQN5kro/XIBpSRk9iTqdIRPzUXE= -github.com/Masterminds/squirrel v1.5.2/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= github.com/Masterminds/squirrel v1.5.3/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= -github.com/Masterminds/vcs v1.13.3/go.mod h1:TiE7xuEjl1N4j016moRd6vezp6e6Lz23gypeXfzXeW8= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= -github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= -github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= -github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= -github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= -github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= -github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= -github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= -github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= -github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= -github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= -github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= -github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= -github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= -github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.0.0 h1:0GoNN3taZV6QI81IXgCbxMyEaJDXMSIjArYBCYzVVvs= -github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2 h1:JCHLVE3B+kJde7bIEo5N4J+ZbLhp0J1Fs+ulyRws4gE= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= -github.com/Shopify/sarama v1.28.0 h1:lOi3SfE6OcFlW9Trgtked2aHNZ2BIG/d6Do+PEUAqqM= -github.com/Shopify/sarama v1.28.0/go.mod h1:j/2xTrU39dlzBmsxF1eQ2/DdWrxyBCl6pzz7a81o/ZY= -github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/TwinProduction/go-color v1.0.0 h1:8n59tqmLmt8jyRsY44RPy2ixPDDw0FcVoAhlYeyz3Jw= github.com/TwinProduction/go-color v1.0.0/go.mod h1:5hWpSyT+mmKPjCwPNEruBW5Dkbs/2PwOuU468ntEXNQ= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= -github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= -github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= -github.com/aws/aws-sdk-go v1.34.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= -github.com/aws/aws-sdk-go v1.37.29 h1:OlePDQg2idesIZKPy8egpN51RIF3DHhtREnvgNpTZhE= -github.com/aws/aws-sdk-go v1.37.29/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.44.21/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go-v2 v1.2.0 h1:BS+UYpbsElC82gB+2E2jiCBg36i8HlubTB/dO/moQ9c= -github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2 v1.16.4/go.mod h1:ytwTPBG6fXTZLxxeeCCWj2/EMYp/xDUgX+OET6TLNNU= -github.com/aws/aws-sdk-go-v2/config v1.1.1 h1:ZAoq32boMzcaTW9bcUacBswAmHTbvlvDJICgHFZuECo= -github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= github.com/aws/aws-sdk-go-v2/config v1.15.7/go.mod h1:exERlvqx1OoUHrxQpMgrmfSW0H6B1+r3xziZD3bBXRg= -github.com/aws/aws-sdk-go-v2/credentials v1.1.1 h1:NbvWIM1Mx6sNPTxowHgS2ewXCRp+NGTzUYb/96FZJbY= -github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= github.com/aws/aws-sdk-go-v2/credentials v1.12.2/go.mod h1:/XWqDVuzclEKvzileqtD7/t+wIhOogv//6JFlKEe0Wc= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2 h1:EtEU7WRaWliitZh2nmuxEXrN0Cb8EgPUFGIoTMeqbzI= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.5/go.mod h1:WAPnuhG5IQ/i6DETFl5NmX3kKqCzw7aau9NHAGcm4QE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.11/go.mod h1:tmUB6jakq5DFNcXsXOA/ZQ7/C8VnSKYkx58OI7Fh79g= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.5/go.mod h1:fV1AaS2gFc1tM0RCb015FJ0pvWVUfJZANzjwoO4YakM= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.12/go.mod h1:00c7+ALdPh4YeEUPXJzyU0Yy01nPGOq2+9rUaz05z9g= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.1.1 h1:xZYDtbub5yhn+ASvD26m76Cgb0k+0+ShE+nZwK9djUQ= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.1.1/go.mod h1:L7nNXGNEV0lkTauKM/KcEIZkT262pckC0YNykwAtX20= github.com/aws/aws-sdk-go-v2/service/ec2 v1.44.0/go.mod h1:b2SVOmsP7A9VlTpfkJAVbU3d+TQfD76x9IUNbvynAbM= -github.com/aws/aws-sdk-go-v2/service/eks v1.1.1 h1:nK/Kl0TIfwaHUkcCj9+L6td2Xds7QNYMODJKWG1wPOY= -github.com/aws/aws-sdk-go-v2/service/eks v1.1.1/go.mod h1:9SVAH9Cu/e1iQOu7VIBp7DhqTq3Dr5cAooCzoh61mEc= github.com/aws/aws-sdk-go-v2/service/eks v1.21.1/go.mod h1:kLodo8S0UEoVEd3mHTKtGnAhCT2uvCUM/Jjfr3og1yI= -github.com/aws/aws-sdk-go-v2/service/iam v1.1.1 h1:dfpLUOEtz+DlRpeAA9vg/tM/VjAcDGBE47m2ZbdXrZU= -github.com/aws/aws-sdk-go-v2/service/iam v1.1.1/go.mod h1:vBPRxb7qWfonEjDJR+ckM+1b1z2gXOogQjmTIPw15L4= github.com/aws/aws-sdk-go-v2/service/iam v1.18.5/go.mod h1:0YrrF3m5qWi/EItvW0wmZCydlgr8lzJ882P2mXoHo7U= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2 h1:4AH9fFjUlVktQMznF+YN33aWNXaR4VgDXyP28qokJC0= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.5/go.mod h1:ZbkttHXaVn3bBo/wpJbQGiiIWR90eTBUVBrEHUEQlho= -github.com/aws/aws-sdk-go-v2/service/sso v1.1.1 h1:37QubsarExl5ZuCBlnRP+7l1tNwZPBSTqpTBrPH98RU= -github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= github.com/aws/aws-sdk-go-v2/service/sso v1.11.5/go.mod h1:TFVe6Rr2joVLsYQ1ABACXgOC6lXip/qpX2x5jWg/A9w= -github.com/aws/aws-sdk-go-v2/service/sts v1.1.1 h1:TJoIfnIFubCX0ACVeJ0w46HEH5MwjwYN4iFhuYIhfIY= -github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= github.com/aws/aws-sdk-go-v2/service/sts v1.16.6/go.mod h1:rP1rEOKAGZoXp4iGDxSXFvODAtXpm34Egf0lL0eshaQ= -github.com/aws/smithy-go v1.1.0 h1:D6CSsM3gdxaGaqXnPgOBCeL6Mophqzu7KJOu7zW78sU= -github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= github.com/aws/smithy-go v1.11.2/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= -github.com/beanstalkd/go-beanstalk v0.1.0 h1:IiNwYbAoVBDs5xEOmleGoX+DRD3Moz99EpATbl8672w= -github.com/beanstalkd/go-beanstalk v0.1.0/go.mod h1:/G8YTyChOtpOArwLTQPY1CHB+i212+av35bkPXXj56Y= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= -github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= -github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c h1:+0HFd5KSZ/mm3JmhmrDukiId5iR6w4+BdFtfSy4yWIc= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= -github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= -github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= -github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= -github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= -github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8= github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= -github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= -github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= -github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= -github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= -github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= -github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -330,315 +146,106 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= -github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= -github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= -github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= -github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= -github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= -github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= -github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= -github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= -github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= -github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= -github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= -github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= -github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= -github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= -github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= -github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= -github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= -github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= -github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= -github.com/containerd/containerd v1.6.1 h1:oa2uY0/0G+JX4X7hpGCYvkp9FjUancz56kSNnb1sG3o= -github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= github.com/containerd/containerd v1.6.6/go.mod h1:ZoP1geJldzCVY3Tonoz7b1IXk8rIX0Nltt5QE4OMNk0= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= -github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= -github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= -github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= -github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= -github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= -github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= -github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= -github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= -github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= -github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= -github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= -github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= -github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= -github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= -github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= -github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= -github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= -github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= -github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= -github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= -github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= -github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= -github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= -github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= -github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= -github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= -github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= -github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= -github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= -github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= -github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= -github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= -github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= -github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= -github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= -github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= -github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= -github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= -github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible h1:bXhRBIXoTm9BYHS3gE0TtQuyNZyeEMux2sDi4oo5YOo= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= -github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= -github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= -github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= -github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= -github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= -github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7hqDjlFjiygg= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= -github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= -github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/distribution/distribution/v3 v3.0.0-20211118083504-a29a3c99a684/go.mod h1:UfCu3YXJJCI+IdnqGgYP82dk2+Joxmv+mUTVBES6wac= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/cli v20.10.11+incompatible h1:tXU1ezXcruZQRrMP8RN2z9N91h+6egZTS1gsPsKantc= -github.com/docker/cli v20.10.11+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli v20.10.17+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= -github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.11+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.12+incompatible h1:CEeNmFM0QZIsJCZKMkZx0ZcahTiewkrgiwfYD+dfl1U= -github.com/docker/docker v20.10.12+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= -github.com/docker/docker-credential-helpers v0.6.4 h1:axCks+yV+2MR3/kZhAmy07yC56WZ2Pwu/fKWtKuZB0o= github.com/docker/docker-credential-helpers v0.6.4/go.mod h1:ofX3UI0Gz1TteYBjtgs07O36Pyasyp66D2uKT7H8W1c= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= -github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= -github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= -github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= -github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1/YsqVWoWNLQO+fusocsw354rqGTZtAgw= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.15.0+incompatible h1:8KpYO/Xl/ZudZs5RNOEhWMBY4hmzlZhhRd9cu+jrZP4= github.com/emicklei/go-restful v2.15.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful/v3 v3.8.0 h1:eCZ8ulSerjdAiaNpF7GxXIE7ZCMo1moN1qX+S609eVw= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473 h1:4cmBvAEBNJaGARUEs3/suWRyfyBfhf7I60WBZq+bv2w= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0 h1:dulLQAYQFYtG5MTplgNGHWuV2D+OBD+Z8lmDBmbLg+s= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws= -github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= -github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72 h1:b+9H1GAsx5RsjvDFLoS5zkNBzIQMuVKUYQDmxU3N5XE= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gorp/gorp/v3 v3.0.2/go.mod h1:BJ3q1ejpV8cVALtcXvXaXyTOlMmJhWDxTmncaR6rwBY= -github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1 h1:wSt/4CYxs70xbATrGXhokKF1i0tZjENLOo1ioIO13zk= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9 h1:tF+augKRWlWx0J0B7ZyyKSiTyV6E1zZe+7b3qQlcEf8= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501 h1:C1JKChikHGpXwT5UQDFaryIpDtyyGL/CR6C2kB7F1oc= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87 h1:zP3nY8Tk2E6RTkqGYrarZXuzh+ffyLDljLxCy1iJw80= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrKU= @@ -646,60 +253,34 @@ github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/e github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/gobuffalo/logger v1.0.3/go.mod h1:SoeejUwldiS7ZsyCBphOGURmWdwUFXs0J7TCjEhjKxM= github.com/gobuffalo/logger v1.0.6/go.mod h1:J31TBEHR1QLV2683OXTAItYIg8pv2JMHnF/quuAbMjs= -github.com/gobuffalo/packd v1.0.0/go.mod h1:6VTc4htmJRFB7u1m/4LeMTWjFoYrUiBkU9Fdec9hrhI= github.com/gobuffalo/packd v1.0.1/go.mod h1:PP2POP3p3RXGz7Jh6eYEf93S7vA2za6xM7QT85L4+VY= -github.com/gobuffalo/packr/v2 v2.8.1/go.mod h1:c/PLlOuTU+p3SybaJATW3H6lX/iK7xEz5OeMf+NnJpg= github.com/gobuffalo/packr/v2 v2.8.3/go.mod h1:0SahksCVcx4IMnigTjiFuyldmTrdTctXsOdiU5KwbKc= -github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= -github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= -github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godror/godror v0.24.2/go.mod h1:wZv/9vPiUib6tkoDl+AZ/QLf5YZgMravZ7jxH2eQWAE= -github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= -github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= -github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0 h1:jlYHihg//f7RRwuPfptm04yp4s7O6Kw8EZiVYIGcH0g= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -714,26 +295,18 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw= -github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/cel-go v0.9.0/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w= github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w= github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= @@ -748,28 +321,22 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc h1:DLpL8pWq0v4JYoRpEhDfsJhhJyGKCcQM2WPW2TJs31c= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -779,264 +346,126 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5 h1:zIaiqGYDQwa4HVx5wGRTXbx38Pqxjemn4BP98wpzpXo= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= -github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= -github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= -github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= -github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY= github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:Iju5GlWwrvL6UBg4zJJt3btmonfrMlCDdsejg4CZE7c= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0 h1:bM6ZAFZmc/wPFaRDi0d5L7hGEZEx/2u+Tmr2evNHDiI= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0 h1:BNQPM9ytxj6jbjjdRPioQ94T6YXriSopn0i8COv6SRA= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= -github.com/hashicorp/consul/sdk v0.1.1 h1:LnuDWGNsoajlhGyHJvuWW6FVqRl8JOTPqS6CPTsYjhY= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= -github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-getter v1.6.2/go.mod h1:IZCrswsZPeWv9IkVnLElzRU/gz/QPi6pZHn4tv6vbwA= -github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= -github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-rootcerts v1.0.0 h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= -github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= -github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0 h1:WhIgCr5a7AaVH6jPUwjtRuuE7/RDufnUvzIr48smyxs= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= -github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= -github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/serf v0.8.2 h1:YZ7UKsJv+hKjqGVUUbtE3HNj79Eln2oQ75tniF6iPt0= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= -github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6 h1:UDMh68UUwekSh5iP2OMhRRZJiiBccgV7axzUG8vi56c= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639 h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= -github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= -github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= -github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= -github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= -github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= -github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= -github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= -github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= -github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= -github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= -github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA= -github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= -github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= -github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jmoiron/sqlx v1.3.4 h1:wv+0IJZfL5z0uZoUjlpKgHkgaFSYD+r9CfrXjEXsO7w= -github.com/jmoiron/sqlx v1.3.4/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= -github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= -github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0 h1:TDTW5Yz1mjftljbcKqRcrYhd4XeOoI98t+9HbQbYf7g= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/karrick/godirwalk v1.15.8/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0 h1:reN85Pxc5larApoH1keMBiu2GWtPqXQ1nc9gx+jOU+E= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.2/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.7 h1:0hzRabrMN4tSTvMfnL3SCv1ZGeAP23ynzodBgaHeMeg= -github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.7/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kortschak/utter v1.0.1/go.mod h1:vSmSjbyrlKjjsL71193LmzBOKgwePk9DH6uFaWHIInc= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1 h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= -github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk= -github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/linkedin/goavro/v2 v2.9.7 h1:Vd++Rb/RKcmNJjM0HP/JJFMEWa21eUBVKPYlKehOGrM= -github.com/linkedin/goavro/v2 v2.9.7/go.mod h1:UgQUb2N/pmueQYH9bfqFioWxzYCZXSfF8Jw03O5sjqA= -github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a h1:TpvdAwDAt1K4ANVOfcihouRdvP+MgAfDWwBuct4l6ZY= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= @@ -1046,442 +475,204 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= -github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-oci8 v0.1.1/go.mod h1:wjDx6Xm9q7dFtHJvIlrI99JytznLw5wQ4R+9mNXJwGI= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= -github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= -github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/cli v1.0.0 h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/cli v1.1.2/go.mod h1:6iaV0fGdElS6dPBx0EApTxHrcWvmJphyh2n8YBLPPZ4= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= -github.com/mitchellh/copystructure v1.1.2 h1:Th2TIvG1+6ma3e/0/bopBKohOTY7s4dA8V2q4EUcBJ0= -github.com/mitchellh/copystructure v1.1.2/go.mod h1:EBArHfARyrSWO/+Wyr9zwEkc6XMFB9XyNgFNmRkZZU4= -github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.1 h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE= -github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mittwald/go-helm-client v0.11.2 h1:EQ/4hHfNNvAVY4f1jVWdKqJdW9ZVu//EQubqAwW9D44= github.com/mittwald/go-helm-client v0.11.2/go.mod h1:Zs+xgOODq1/ILHj61foCI07EBNB7IoBHaW+VjJN2bcU= -github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= -github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= -github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= -github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= -github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= -github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297 h1:yH0SvLzcbZxcJXho2yh7CqdENGMQe73Cw3woZBpPli0= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d h1:7PxY7LVfSZm7PEeBTyK1rj1gABdCO2mbri6GKO1cMDs= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 h1:F9x/1yl3T2AeKLr2AMdilSD8+f9bvMnNN8VS5iDtovc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= -github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= -github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= -github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= -github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= -github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= -github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= -github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= -github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= -github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= -github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= -github.com/pierrec/lz4 v2.6.0+incompatible h1:Ix9yFKn1nSPBLFl/yZknTp8TU5G4Ps0JDmguYK6iH1A= -github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1 h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/poy/onpar v0.0.0-20190519213022-ee068f8ea4d1/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0 h1:7etb9YClo3a6HjLzfl6rIQaU+FDfi0VSX39io3aQ+DM= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.28.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.30.0 h1:JEkYlQnpzrzQFxi6gnukFPdQ+ac82oRhzMcIduJu/Ug= -github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.35.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzrgykg80hfFph1mryUeLRsUfoocVVmRY= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= -github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/riferrei/srclient v0.2.1 h1:uIJhzPXW+suDsEDOZKf4oTZZXTyxtw98cFC70rFzvgU= -github.com/riferrei/srclient v0.2.1/go.mod h1:SmCz0lrYQ1pLqXlYq0yPnRccHLGh+llDA0i6hecPeW8= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af h1:gu+uRPtBe88sKxUCEXRoeCvVG90TJmwhiqRpvdhQFng= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0 h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= -github.com/rubenv/sql-migrate v0.0.0-20210614095031-55d5740dbbcc h1:BD7uZqkN8CpjJtN/tScAKiccBikU4dlqe/gNrkRaPY4= -github.com/rubenv/sql-migrate v0.0.0-20210614095031-55d5740dbbcc/go.mod h1:HFLT6i9iR4QBOF5rdCyjddC9t59ArqWJV2xx+jwcCMo= github.com/rubenv/sql-migrate v1.1.2/go.mod h1:/7TZymwxN8VWumcIxw1jjHEcR1djpdkMHQPT4FWdnbQ= -github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f h1:UFr9zpz4xgTnIE5yIMtWAMngCdZ9p/+q6lTbgelo80M= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= -github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= -github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= -github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= -github.com/segmentio/backo-go v0.0.0-20200129164019-23eae7c10bd3 h1:ZuhckGJ10ulaKkdvJtiAqsLTiPrLaXSdnVgXJKJkTxE= github.com/segmentio/backo-go v0.0.0-20200129164019-23eae7c10bd3/go.mod h1:9/Rh6yILuLysoQnZ2oNooD2g7aBnvM7r/fNVxRNWfBc= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= -github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= -github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.3.0/go.mod h1:BrRVncBjOJa/eUcVVm9CE+oC6as8k+VYr4NY7WCi9V4= -github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM= github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk= -github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= -github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs= -github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= -github.com/thanhpk/randstr v1.0.4 h1:IN78qu/bR+My+gHCvMEXhR/i5oriVHcTB/BJJIRTsNo= github.com/thanhpk/randstr v1.0.4/go.mod h1:M/H2P1eNLZzlDwAzpkkkUvoyNNMbzRGhESZuEQk3r0U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= -github.com/txn2/txeh v1.3.0 h1:vnbv63htVMZCaQgLqVBxKvj2+HHHFUzNW7I183zjg3E= github.com/txn2/txeh v1.3.0/go.mod h1:O7M6gUTPeMF+vsa4c4Ipx3JDkOYrruB1Wry8QRsMcw8= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8 h1:3SVOIvH7Ae1KRYyQWRjXWJEA9sS/c/pjvH++55Gr648= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= -github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= -github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= -github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV0YCnDjqSL7/q/JyPhhJSPk= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v1.0.0 h1:d9X0esnoa3dFsV0FG35rAT0RIhYFlPq7MiP+DW89La0= -github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= -github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI= github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c h1:3lbZUMbMiGUW/LMkfsEABsc5zNT9+b1CvsJx47JzJ8g= github.com/xtgo/uuid v0.0.0-20140804021211-a0b114877d4c/go.mod h1:UrdRz5enIKZ63MEE3IF9l2/ebyx59GyGgPi+tICQdmM= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1490,113 +681,66 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= -github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= -github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= -go.etcd.io/bbolt v1.3.2 h1:Z/90sZLPOeCy2PwprqkFa25PdkusRzaj9P8zm/KNyvk= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= go.etcd.io/etcd/client/v3 v3.5.1/go.mod h1:OnjH4M8OnAotwaB2l9bVgZzRFKru7/ZMoS46OtKyd3Q= go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= -go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= -go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= -go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= -go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= -go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -goji.io v2.0.2+incompatible h1:uIssv/elbKRLznFUy3Xj4+2Mz/qKhek/9aZQDUMae7c= goji.io v2.0.2+incompatible/go.mod h1:sbqFwrtqZACxLBTQcdgVjFh54yGVCvwq8+w49MVMMIk= -golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220507011949-2cf3adece122 h1:NvGWuYG8dkDHFSKksI1P9faiVJ9rayE6l0+ouWVIDs8= -golang.org/x/crypto v0.0.0-20220507011949-2cf3adece122/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898 h1:SLP7Q4Di66FONjDJbCYrCRrh97focO6sLogHO7/g8F0= -golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1604,14 +748,11 @@ golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxT golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299 h1:zQpM52jfKHG6II1ISZY1ZcpygvuSFZpLwfluuF89XOg= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 h1:QE6XYQK6naiK1EPAe1g/ILLxN5RBoH5xkJk3CqlMI/Y= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -1620,15 +761,12 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f h1:J5lckAjkw6qYlOZNj90mLYNTEKDvWeuc1yieZ8qUzUE= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 h1:2M3HP5CCK1Si9FQhwnzYhXdG6DXeebvUHFpre8QvbyI= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= @@ -1637,16 +775,12 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1 h1:Kvvh58BN8Y9/lBi7hTekvtMpm07eUZ0ck5pRHpsMWrY= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1657,17 +791,12 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1683,47 +812,34 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220107192237-5cfca573fb4d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220524220425-1d687d428aca h1:xTaFYiPROfpPhqrfTIDXj0ri1SpfueYT951s4bAuDO8= -golang.org/x/net v0.0.0-20220524220425-1d687d428aca/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220630215102-69896b714898 h1:K7wO6V1IrczY9QOQ2WkVpw4JQSwCd52UsxVEirZUfiw= golang.org/x/net v0.0.0-20220630215102-69896b714898/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= @@ -1737,29 +853,24 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220524215830-622c5d57e401 h1:zwrSfklXn0gxyLRX/aR+q6cgHbV/ItVyzbPlbA+dkAw= -golang.org/x/oauth2 v0.0.0-20220524215830-622c5d57e401/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220630143837-2104d58473e0 h1:VnGaRqoLmqZH/3TMLJwYCEWkR4j1nuIU1U9TvbqsDUw= golang.org/x/oauth2 v0.0.0-20220630143837-2104d58473e0/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1771,48 +882,29 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1823,64 +915,40 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1891,54 +959,35 @@ golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220517195934-5e4e11fc645e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e h1:CsOuNlbOuf0mzxJIefr6Q4uAUetRUwZE4qt7VfzP+xo= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 h1:EH1Deb8WZJ0xc0WK//leUHXcX9aLE5SymusoTmMZye8= -golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 h1:CBpWXWQpIRjzmkkA+M7q9Fqnwd2mZr3AFqexg8YTfoM= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE= -golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220411224347-583f2d630306 h1:+gHMid33q6pen7kv9xvT+JRinntgeXO2AeZVd0AWD3w= -golang.org/x/time v0.0.0-20220411224347-583f2d630306/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1950,13 +999,10 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1967,7 +1013,6 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4 h1:Toz2IK7k8rbltAXwNAxKcn9OzqyNfMUhUNjz3sL0NMk= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1978,25 +1023,21 @@ golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -2005,28 +1046,22 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0 h1:yzlyyDW/J0w8yNFJIhiAJy4kq74S+1DOLdawELNxFMA= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= @@ -2041,7 +1076,6 @@ google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0 h1:4sAyIHT6ZohtAQDoxws+ez7bROYmUlOVvsUscYCDTqA= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= @@ -2052,9 +1086,7 @@ google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6 google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw= google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= @@ -2069,18 +1101,15 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -2089,7 +1118,6 @@ google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -2103,9 +1131,7 @@ google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -2114,7 +1140,6 @@ google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -2142,15 +1167,10 @@ google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211129164237-f09f9a12af12/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211203200212-54befc351ae9/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368 h1:Et6SkiuvnBn+SgrSYXs/BrUpGB4mbdwt4R3vaPIlicA= google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= @@ -2162,7 +1182,6 @@ google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2I google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3 h1:SeX3QUcBj3fciwnfPT9kt5gBhFy/FCZtYZ+I/RB8agc= google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= @@ -2170,19 +1189,14 @@ google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= @@ -2201,13 +1215,9 @@ google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= @@ -2221,7 +1231,6 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= @@ -2229,45 +1238,26 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= -gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= -gopkg.in/gorp.v1 v1.7.2 h1:j3DWlAyGVv8whO7AcIWznQ2Yj7yJkn34B8s63GViAAw= gopkg.in/gorp.v1 v1.7.2/go.mod h1:Wo3h+DBQZIxATwftsglhdD/62zRFPhGhTiu5jUJmCaw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/segmentio/analytics-go.v3 v3.1.0 h1:UzxH1uaGZRpMKDhJyBz0pexz6yUoBU3x8bJsRk/HV6U= gopkg.in/segmentio/analytics-go.v3 v3.1.0/go.mod h1:4QqqlTlSSpVlWA9/9nDcPw+FkM2yv1NQoYjUbL9/JAw= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= -gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -2279,171 +1269,71 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA= gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -helm.sh/helm/v3 v3.8.2 h1:HDhe2nKek976VLMPZlIgJbNqwcqvHYBp1qy+sXQ4jiY= -helm.sh/helm/v3 v3.8.2/go.mod h1:NxtE2KObf2PrzDl6SIamPFPKyAqWi10iWuvKlQn/Yao= helm.sh/helm/v3 v3.9.0/go.mod h1:fzZfyslcPAWwSdkXrXlpKexFeE2Dei8N27FFQWt+PN0= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.19.0 h1:XyrFIJqTYZJ2DU7FBE/bSPz7b1HvbVBuBf07oeo6eTc= -k8s.io/api v0.19.0/go.mod h1:I1K45XlvTrDjmj5LoM5LuP/KYrhWbjUKT/SoPG0qTjw= -k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= -k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= -k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= -k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs= -k8s.io/api v0.23.5/go.mod h1:Na4XuKng8PXJ2JsploYYrivXrINeTaycCGcYgF91Xm8= -k8s.io/api v0.24.0 h1:J0hann2hfxWr1hinZIDefw7Q96wmCBx6SSB8IY0MdDg= -k8s.io/api v0.24.0/go.mod h1:5Jl90IUrJHUJYEMANRURMiVvJ0g7Ax7r3R1bqO8zx8I= +k8s.io/api v0.24.2 h1:g518dPU/L7VRLxWfcadQn2OnsiGWVOadTLpdnqgY2OI= k8s.io/api v0.24.2/go.mod h1:AHqbSkTm6YrQ0ObxjO3Pmp/ubFF/KuM7jU+3khoBsOg= -k8s.io/apiextensions-apiserver v0.23.5 h1:5SKzdXyvIJKu+zbfPc3kCbWpbxi+O+zdmAJBm26UJqI= -k8s.io/apiextensions-apiserver v0.23.5/go.mod h1:ntcPWNXS8ZPKN+zTXuzYMeg731CP0heCTl6gYBxLcuQ= k8s.io/apiextensions-apiserver v0.24.2/go.mod h1:e5t2GMFVngUEHUd0wuCJzw8YDwZoqZfJiGOW6mm2hLQ= -k8s.io/apimachinery v0.19.0 h1:gjKnAda/HZp5k4xQYjL0K/Yb66IvNqjthCb03QlKpaQ= -k8s.io/apimachinery v0.19.0/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= -k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= -k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= -k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= -k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U= -k8s.io/apimachinery v0.23.5/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM= -k8s.io/apimachinery v0.24.0 h1:ydFCyC/DjCvFCHK5OPMKBlxayQytB8pxy8YQInd5UyQ= -k8s.io/apimachinery v0.24.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/apimachinery v0.24.2 h1:5QlH9SL2C8KMcrNJPor+LbXVTaZRReml7svPEh4OKDM= k8s.io/apimachinery v0.24.2/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= -k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= -k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= -k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= -k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ= -k8s.io/apiserver v0.23.5 h1:2Ly8oUjz5cnZRn1YwYr+aFgDZzUmEVL9RscXbnIeDSE= -k8s.io/apiserver v0.23.5/go.mod h1:7wvMtGJ42VRxzgVI7jkbKvMbuCbVbgsWFT7RyXiRNTw= k8s.io/apiserver v0.24.2/go.mod h1:pSuKzr3zV+L+MWqsEo0kHHYwCo77AT5qXbFXP2jbvFI= -k8s.io/cli-runtime v0.23.5 h1:Z7XUpGoJZYZB2uNjQfJjMbyDKyVkoBGye62Ap0sWQHY= -k8s.io/cli-runtime v0.23.5/go.mod h1:oY6QDF2qo9xndSq32tqcmRp2UyXssdGrLfjAVymgbx4= k8s.io/cli-runtime v0.24.2/go.mod h1:1LIhKL2RblkhfG4v5lZEt7FtgFG5mVb8wqv5lE9m5qY= -k8s.io/client-go v0.19.0 h1:1+0E0zfWFIWeyRhQYWzimJOyAk2UT7TiARaLNwJCf7k= -k8s.io/client-go v0.19.0/go.mod h1:H9E/VT95blcFQnlyShFgnFT9ZnJOAceiUHM3MlRC+mU= -k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= -k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= -k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= -k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y= -k8s.io/client-go v0.23.5/go.mod h1:flkeinTO1CirYgzMPRWxUCnV0G4Fbu2vLhYCObnt/r4= -k8s.io/client-go v0.24.0 h1:lbE4aB1gTHvYFSwm6eD3OF14NhFDKCejlnsGYlSJe5U= -k8s.io/client-go v0.24.0/go.mod h1:VFPQET+cAFpYxh6Bq6f4xyMY80G6jKKktU6G0m00VDw= +k8s.io/client-go v0.24.2 h1:CoXFSf8if+bLEbinDqN9ePIDGzcLtqhfd6jpfnwGOFA= k8s.io/client-go v0.24.2/go.mod h1:zg4Xaoo+umDsfCWr4fCnmLEtQXyCNXCvJuSsglNcV30= -k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= -k8s.io/code-generator v0.23.5/go.mod h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk= k8s.io/code-generator v0.24.2/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w= -k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= -k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= -k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= -k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI= -k8s.io/component-base v0.23.5 h1:8qgP5R6jG1BBSXmRYW+dsmitIrpk8F/fPEvgDenMCCE= -k8s.io/component-base v0.23.5/go.mod h1:c5Nq44KZyt1aLl0IpHX82fhsn84Sb0jjzwjpcA42bY0= k8s.io/component-base v0.24.2/go.mod h1:ucHwW76dajvQ9B7+zecZAP3BVqvrHoOxm8olHEg0nmM= -k8s.io/component-helpers v0.23.5/go.mod h1:5riXJgjTIs+ZB8xnf5M2anZ8iQuq37a0B/0BgoPQuSM= k8s.io/component-helpers v0.24.2/go.mod h1:TRQPBQKfmqkmV6c0HAmUs8cXVNYYYLsXy4zu8eODi9g= -k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= -k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= -k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= -k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= -k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac h1:sAvhNk5RRuc6FNYGqe7Ygz3PSo/2wGWbulskmzRX8Vs= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c h1:GohjlNKauSai7gN4wsJkeZ3WAJx4Sh+oT/b5IYn5suA= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/helm v2.17.0+incompatible/go.mod h1:LZzlS4LQBHfciFOurYBFkCMTaZ0D1l+p0teMg7TSULI= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc= k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.70.0 h1:GMmmjoFOrNepPN0ZeGCzvD2Gh5IKRwdFx8W5PBxVTQU= k8s.io/klog/v2 v2.70.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= -k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= k8s.io/kube-openapi v0.0.0-20220401212409-b28bf2818661/go.mod h1:daOouuuwd9JXpv1L7Y34iV3yf6nxzipkKMWWlqlvK9M= -k8s.io/kube-openapi v0.0.0-20220413171646-5e7f5fdc6da6 h1:nBQrWPlrNIiw0BsX6a6MKr1itkm0ZS0Nl97kNLitFfI= -k8s.io/kube-openapi v0.0.0-20220413171646-5e7f5fdc6da6/go.mod h1:daOouuuwd9JXpv1L7Y34iV3yf6nxzipkKMWWlqlvK9M= +k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8 h1:yEQKdMCjzAOvGeiTwG4hO/hNVNtDOuUFvMUZ0OlaIzs= k8s.io/kube-openapi v0.0.0-20220627174259-011e075b9cb8/go.mod h1:mbJ+NSUoAhuR14N0S63bPkh8MGVSo3VYSGZtH/mfMe0= -k8s.io/kubectl v0.23.5 h1:DmDULqCaF4qstj0Im143XmncvqWtJxHzK8IrW2BzlU0= -k8s.io/kubectl v0.23.5/go.mod h1:lLgw7cVY8xbd7o637vOXPca/w6HC205KsPCRDYRCxwE= k8s.io/kubectl v0.24.2/go.mod h1:+HIFJc0bA6Tzu5O/YcuUt45APAxnNL8LeMuXwoiGsPg= -k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/metrics v0.23.5/go.mod h1:WNAtV2a5BYbmDS8+7jSqYYV6E3efuGTpIwJ8PTD1wgs= k8s.io/metrics v0.24.2/go.mod h1:5NWURxZ6Lz5gj8TFU83+vdWIVASx7W8lwPpHYCqopMo= -k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920 h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 h1:HNSDgDCrr/6Ly3WEGKZftiE7IY19Vz2GdbOCyI4qqhc= k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -oras.land/oras-go v1.1.1 h1:gI00ftziRivKXaw1BdMeEoIA4uBgga33iVlOsEwefFs= -oras.land/oras-go v1.1.1/go.mod h1:n2TE1ummt9MUyprGhT+Q7kGZUF4kVUpYysPFxeV2IpQ= oras.land/oras-go v1.2.0/go.mod h1:pFNs7oHp2dYsYMSS82HaX5l4mpnGO7hbpPN6EWH2ltc= -rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.30/go.mod h1:fEO7lRTdivWO2qYVCVG7dEADOMo/MLDCVr8So2g88Uw= -sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs= sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= sigs.k8s.io/json v0.0.0-20220525155127-227cbc7cc124 h1:2sgAQQcY0dEW2SsQwTXhQV4vO6+rSslYx8K3XmM5hqQ= sigs.k8s.io/json v0.0.0-20220525155127-227cbc7cc124/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= -sigs.k8s.io/kustomize/api v0.10.1 h1:KgU7hfYoscuqag84kxtzKdEC3mKMb99DPI3a0eaV1d0= -sigs.k8s.io/kustomize/api v0.10.1/go.mod h1:2FigT1QN6xKdcnGS2Ppp1uIWrtWN28Ms8A3OZUZhwr8= sigs.k8s.io/kustomize/api v0.11.4/go.mod h1:k+8RsqYbgpkIrJ4p9jcdPqe8DprLxFUUO0yNOq8C+xI= sigs.k8s.io/kustomize/api v0.11.5/go.mod h1:2UDpxS6AonWXow2ZbySd4AjUxmdXLeTlvGBC46uSiq8= -sigs.k8s.io/kustomize/cmd/config v0.10.2/go.mod h1:K2aW7nXJ0AaT+VA/eO0/dzFLxmpFcTzudmAgDwPY1HQ= sigs.k8s.io/kustomize/cmd/config v0.10.6/go.mod h1:/S4A4nUANUa4bZJ/Edt7ZQTyKOY9WCER0uBS1SW2Rco= -sigs.k8s.io/kustomize/kustomize/v4 v4.4.1/go.mod h1:qOKJMMz2mBP+vcS7vK+mNz4HBLjaQSWRY22EF6Tb7Io= sigs.k8s.io/kustomize/kustomize/v4 v4.5.4/go.mod h1:Zo/Xc5FKD6sHl0lilbrieeGeZHVYCA4BzxeAaLI05Bg= -sigs.k8s.io/kustomize/kyaml v0.13.0 h1:9c+ETyNfSrVhxvphs+K2dzT3dh5oVPPEqPOE/cUpScY= -sigs.k8s.io/kustomize/kyaml v0.13.0/go.mod h1:FTJxEZ86ScK184NpGSAQcfEqee0nul8oLCK30D47m4E= sigs.k8s.io/kustomize/kyaml v0.13.6/go.mod h1:yHP031rn1QX1lr/Xd934Ri/xdVNG8BE2ECa78Ht/kEg= sigs.k8s.io/kustomize/kyaml v0.13.7/go.mod h1:6K+IUOuir3Y7nucPRAjw9yth04KSWBnP5pqUTGwj/qU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y= sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/go_repositories.bzl b/go_repositories.bzl index 4226b71bcc..4d36c0f6a1 100644 --- a/go_repositories.bzl +++ b/go_repositories.bzl @@ -273,6 +273,14 @@ def go_repositories(): sum = "h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=", version = "v1.0.1", ) + + go_repository( + name = "com_github_bgentry_go_netrc", + build_file_proto_mode = "disable_global", + importpath = "github.com/bgentry/go-netrc", + sum = "h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas=", + version = "v0.0.0-20140422174119-9fd32a8b3d3d", + ) go_repository( name = "com_github_bgentry_speakeasy", build_file_proto_mode = "disable_global", @@ -310,13 +318,6 @@ def go_repositories(): sum = "h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70=", version = "v1.0.0", ) - go_repository( - name = "com_github_bgentry_go_netrc", - build_file_proto_mode = "disable_global", - importpath = "github.com/bgentry/go-netrc", - sum = "h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas=", - version = "v0.0.0-20140422174119-9fd32a8b3d3d", - ) go_repository( name = "com_github_buger_jsonparser", @@ -717,11 +718,18 @@ def go_repositories(): version = "v1.1.1", ) go_repository( - name = "com_github_elazarl_goproxy", + name = "com_github_daviddengcn_go_colortext", build_file_proto_mode = "disable_global", - importpath = "github.com/elazarl/goproxy", - sum = "h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc=", - version = "v0.0.0-20180725130230-947c36da3153", + importpath = "github.com/daviddengcn/go-colortext", + sum = "h1:uVsMphB1eRx7xB1njzL3fuMdWRN8HtVzoUOItHMwv5c=", + version = "v0.0.0-20160507010035-511bcaf42ccd", + ) + go_repository( + name = "com_github_denisenkom_go_mssqldb", + build_file_proto_mode = "disable_global", + importpath = "github.com/denisenkom/go-mssqldb", + sum = "h1:RSohk2RsiZqLZ0zCjtfn3S4Gp4exhpBWHyQ7D0yGjAk=", + version = "v0.9.0", ) go_repository( @@ -824,6 +832,13 @@ def go_repositories(): sum = "h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=", version = "v1.0.0", ) + go_repository( + name = "com_github_elazarl_goproxy", + build_file_proto_mode = "disable_global", + importpath = "github.com/elazarl/goproxy", + sum = "h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc=", + version = "v0.0.0-20180725130230-947c36da3153", + ) go_repository( name = "com_github_emicklei_go_restful", @@ -1477,6 +1492,14 @@ def go_repositories(): sum = "h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=", version = "v1.0.2", ) + + go_repository( + name = "com_github_hashicorp_go_safetemp", + build_file_proto_mode = "disable_global", + importpath = "github.com/hashicorp/go-safetemp", + sum = "h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo=", + version = "v1.0.0", + ) go_repository( name = "com_github_hashicorp_go_sockaddr", build_file_proto_mode = "disable_global", @@ -1498,13 +1521,7 @@ def go_repositories(): sum = "h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE=", version = "v1.0.1", ) - go_repository( - name = "com_github_hashicorp_go_safetemp", - build_file_proto_mode = "disable_global", - importpath = "github.com/hashicorp/go-safetemp", - sum = "h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo=", - version = "v1.0.0", - ) + go_repository( name = "com_github_hashicorp_go_version", build_file_proto_mode = "disable_global", @@ -1722,8 +1739,8 @@ def go_repositories(): name = "com_github_kortschak_utter", build_file_proto_mode = "disable_global", importpath = "github.com/kortschak/utter", - sum = "h1:MiK62aErc3gIiVEtyzKfeOHgW7atJb5g/KNX5m3c2nQ=", - version = "v1.11.2", + sum = "h1:AJVccwLrdrikvkH0aI5JKlzZIORLpfMeGBQ5tHfIXis=", + version = "v1.0.1", ) go_repository( name = "com_github_kr_fs", @@ -2664,6 +2681,14 @@ def go_repositories(): sum = "h1:3SVOIvH7Ae1KRYyQWRjXWJEA9sS/c/pjvH++55Gr648=", version = "v0.0.0-20181204163529-d75b2dcb6bc8", ) + + go_repository( + name = "com_github_ulikunitz_xz", + build_file_proto_mode = "disable_global", + importpath = "github.com/ulikunitz/xz", + sum = "h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ=", + version = "v0.5.8", + ) go_repository( name = "com_github_urfave_cli", build_file_proto_mode = "disable_global", @@ -2685,13 +2710,6 @@ def go_repositories(): sum = "h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA=", version = "v0.0.0-20210104183010-2eb08e3e575f", ) - go_repository( - name = "com_github_ulikunitz_xz", - build_file_proto_mode = "disable_global", - importpath = "github.com/ulikunitz/xz", - sum = "h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ=", - version = "v0.5.8", - ) go_repository( name = "com_github_xeipuuv_gojsonpointer", diff --git a/infrastructure/terraform/install/uninstall.sh b/infrastructure/terraform/install/uninstall.sh index 64d264cace..e5ad7a5de0 100755 --- a/infrastructure/terraform/install/uninstall.sh +++ b/infrastructure/terraform/install/uninstall.sh @@ -22,7 +22,11 @@ if [[ ! ${REPLY} =~ ^[yY]$ ]]; then exit 1 fi -cd "airy-core" 2>/dev/null || ( echo "Terraform directory \"airy-core\" doesn't exist"; exit 1) +cd "${PROVIDER}" 2>/dev/null || ( echo "Terraform directory ${PROVIDER} doesn't exist"; exit 1) +terraform init +terraform apply -auto-approve + +cd "../airy-core" 2>/dev/null || ( echo "Terraform directory \"airy-core\" doesn't exist"; exit 1) terraform init terraform destroy -auto-approve diff --git a/tools/update-deps/go.mod b/tools/update-deps/go.mod index 0f98be1a8a..e21a188fb3 100644 --- a/tools/update-deps/go.mod +++ b/tools/update-deps/go.mod @@ -4,4 +4,4 @@ go 1.18 require golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 -require golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect +require golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect diff --git a/tools/update-deps/go.sum b/tools/update-deps/go.sum index c4806b3a6a..d9c5b0efda 100644 --- a/tools/update-deps/go.sum +++ b/tools/update-deps/go.sum @@ -18,3 +18,5 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbO golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f h1:uF6paiQQebLeSXkrTqHqz0MXhXXS1KgF41eUdBNvxK0= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= From ae1e34c4eb329eb94c9403c1ba86574a09d5abb6 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Fri, 11 Nov 2022 14:33:54 +0100 Subject: [PATCH 19/28] [#3927] Added airy contacts to catalog (#3932) --- frontend/control-center/src/components/Sidebar/index.tsx | 2 +- frontend/control-center/src/pages/Connectors/index.tsx | 6 +++--- .../src/pages/Status/ComponentListItem/ItemInfo.tsx | 4 ++-- frontend/control-center/src/services/getRouteForCard.ts | 4 ++-- lib/typescript/model/Source.ts | 5 ++++- lib/typescript/translations/translations.ts | 8 ++++---- 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/frontend/control-center/src/components/Sidebar/index.tsx b/frontend/control-center/src/components/Sidebar/index.tsx index 32904d1eb5..854365567c 100644 --- a/frontend/control-center/src/components/Sidebar/index.tsx +++ b/frontend/control-center/src/components/Sidebar/index.tsx @@ -25,7 +25,7 @@ const connector = connect(mapStateToProps); const Sidebar = (props: SideBarProps) => { const {version, components} = props; - const componentInfo = useCurrentComponentForSource(Source.webhooks); + const componentInfo = useCurrentComponentForSource(Source.airyWebhooks); const webhooksEnabled = componentInfo.installationStatus === InstallationStatus.installed; const inboxEnabled = components[Source.frontendInbox]?.enabled || false; diff --git a/frontend/control-center/src/pages/Connectors/index.tsx b/frontend/control-center/src/pages/Connectors/index.tsx index c90923d26b..0e6a78820f 100644 --- a/frontend/control-center/src/pages/Connectors/index.tsx +++ b/frontend/control-center/src/pages/Connectors/index.tsx @@ -1,6 +1,6 @@ import React, {useEffect} from 'react'; import {connect, ConnectedProps} from 'react-redux'; -import {Connector, InstallationStatus, Source} from 'model'; +import {airyProduct, Connector, InstallationStatus} from 'model'; import InfoCard from './InfoCard'; import {StateModel} from '../../reducers'; import {setPageTitle} from '../../services/pageTitle'; @@ -24,11 +24,11 @@ const Connectors = (props: ConnectedProps) => { const installedConnectors = Object.values(connectors).filter( (connector: Connector) => connector.installationStatus === InstallationStatus.installed && - connector.source !== Source.webhooks && + connector.source !== airyProduct && connector.price ); const hasAvailableConnectors = - Object.values(connectors).filter((connector: Connector) => connector.source !== Source.webhooks && connector.price) + Object.values(connectors).filter((connector: Connector) => connector.source !== airyProduct && connector.price) .length > 0; const hasInstalledComponents = installedConnectors.length > 0; diff --git a/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx b/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx index cf8b97a43f..2518bde51a 100644 --- a/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx +++ b/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx @@ -5,7 +5,7 @@ import {ReactComponent as CheckmarkIcon} from 'assets/images/icons/checkmarkFill import {ReactComponent as UncheckedIcon} from 'assets/images/icons/uncheckIcon.svg'; import {ReactComponent as ArrowRight} from 'assets/images/icons/arrowRight.svg'; import {getChannelAvatar} from '../../../components/ChannelAvatar'; -import {Source} from 'model'; +import {Source, airyProduct} from 'model'; import {SettingsModal, Button, Toggle, Tooltip} from 'components'; import {connect, ConnectedProps, useSelector} from 'react-redux'; import {useTranslation} from 'react-i18next'; @@ -44,7 +44,7 @@ const ItemInfo = (props: ComponentInfoProps) => { let isConfigurable = false; Object.entries(catalogList).forEach(elem => { - if (elem[1] && elem[1].source && elem[1].source === source && elem[1].source !== Source.webhooks) + if (elem[1] && elem[1].source && elem[1].source === source && elem[1].source !== airyProduct) isConfigurable = true; }); diff --git a/frontend/control-center/src/services/getRouteForCard.ts b/frontend/control-center/src/services/getRouteForCard.ts index b2c7235be9..38b06b6a74 100644 --- a/frontend/control-center/src/services/getRouteForCard.ts +++ b/frontend/control-center/src/services/getRouteForCard.ts @@ -7,7 +7,7 @@ export const getConnectedRouteForComponent = ( hasConnectedChannels?: boolean, configured?: boolean ) => { - if (source === Source.webhooks) return WEBHOOKS_ROUTE; + if (source === Source.airyWebhooks) return WEBHOOKS_ROUTE; if ((!configured || !isChannel) && source !== Source.chatPlugin) return `${CONNECTORS_ROUTE}/${source}/configure`; @@ -19,7 +19,7 @@ export const getConnectedRouteForComponent = ( }; export const getNewChannelRouteForComponent = (source: Source, isChannel?: boolean, configured?: boolean) => { - if (source === Source.webhooks) return WEBHOOKS_ROUTE; + if (source === Source.airyWebhooks) return WEBHOOKS_ROUTE; if ((!configured || !isChannel) && source !== Source.chatPlugin) return `${CONNECTORS_ROUTE}/${source}/configure`; diff --git a/lib/typescript/model/Source.ts b/lib/typescript/model/Source.ts index 19ed6ce909..3e791406bb 100644 --- a/lib/typescript/model/Source.ts +++ b/lib/typescript/model/Source.ts @@ -1,4 +1,6 @@ export enum Source { + airyContacts = 'airyContacts', + airyWebhooks = 'webhooks', facebook = 'facebook', google = 'google', chatPlugin = 'chatplugin', @@ -12,7 +14,6 @@ export enum Source { salesforce = 'salesforce', cognigy = 'cognigy', rasa = 'rasa', - webhooks = 'webhooks', amelia = 'amelia', mobile = 'mobile', whatsapp = 'whatsapp', @@ -22,6 +23,8 @@ export enum Source { amazonLexV2 = 'amazonLexV2', } +export const airyProduct = Source.airyContacts && Source.airyWebhooks; + export const prettifySource = (source: string) => source .split('.') diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index b4aa9c5f12..5a21228a2c 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -448,7 +448,7 @@ const resources = { rasaDescription: 'Open source conversational AI.', //webhooks - webhooksDescription: 'Get notified when events happen.', + airyWebhooksDescription: 'Get notified when events happen.', //amelia ameliaDescription: 'An intelligent cognitive conversational chatbot.', @@ -946,7 +946,7 @@ const resources = { rasaDescription: 'Open-Source-Gesprächs-KI.', //webhooks - webhooksDescription: 'Lassen Sie sich benachrichtigen, wenn Ereignisse eintreten.', + airyWebhooksDescription: 'Lassen Sie sich benachrichtigen, wenn Ereignisse eintreten.', //amelia ameliaDescription: 'Ein intelligenter kognitiver Konversations-Chatbot.', @@ -1569,7 +1569,7 @@ const resources = { rasaDescription: 'IA conversationnelle open source.', //webhooks - webhooksDescription: 'Soyez averti lorsque des événements se produisent.', + airyWebhooksDescription: 'Soyez averti lorsque des événements se produisent.', //amelia ameliaDescription: 'Un chatbot conversationnel cognitif intelligent.', @@ -2131,7 +2131,7 @@ const resources = { rasaDescription: 'IA conversacional Open Source.', //webhooks - webhooksDescription: 'Reciba notificaciones cuando ocurran eventos.', + airyWebhooksDescription: 'Reciba notificaciones cuando ocurran eventos.', //amelia ameliaDescription: 'Un chatbot conversacional cognitivo inteligente.', From f8824bdd27154bef17f02bc59424f8ec665bab56 Mon Sep 17 00:00:00 2001 From: Ljupco Vangelski Date: Mon, 14 Nov 2022 15:33:06 +0100 Subject: [PATCH 20/28] [#3923] Use auth-provider in GCP kubeconfig file (#3924) --- infrastructure/terraform/install/uninstall.sh | 6 +---- .../terraform/modules/gcp-gke/main.tf | 22 +++++++++---------- .../terraform/modules/gcp-gke/outputs.tf | 12 +++------- 3 files changed, 15 insertions(+), 25 deletions(-) diff --git a/infrastructure/terraform/install/uninstall.sh b/infrastructure/terraform/install/uninstall.sh index e5ad7a5de0..64d264cace 100755 --- a/infrastructure/terraform/install/uninstall.sh +++ b/infrastructure/terraform/install/uninstall.sh @@ -22,11 +22,7 @@ if [[ ! ${REPLY} =~ ^[yY]$ ]]; then exit 1 fi -cd "${PROVIDER}" 2>/dev/null || ( echo "Terraform directory ${PROVIDER} doesn't exist"; exit 1) -terraform init -terraform apply -auto-approve - -cd "../airy-core" 2>/dev/null || ( echo "Terraform directory \"airy-core\" doesn't exist"; exit 1) +cd "airy-core" 2>/dev/null || ( echo "Terraform directory \"airy-core\" doesn't exist"; exit 1) terraform init terraform destroy -auto-approve diff --git a/infrastructure/terraform/modules/gcp-gke/main.tf b/infrastructure/terraform/modules/gcp-gke/main.tf index f4c7a84a99..fee8392fb3 100644 --- a/infrastructure/terraform/modules/gcp-gke/main.tf +++ b/infrastructure/terraform/modules/gcp-gke/main.tf @@ -44,19 +44,19 @@ resource "google_container_node_pool" "gke_core_nodes" { depends_on = [resource.google_container_cluster.gke_core] } -module "gke_auth" { - source = "terraform-google-modules/kubernetes-engine/google//modules/auth" - - project_id = var.project_id - location = google_container_cluster.gke_core.location - cluster_name = google_container_cluster.gke_core.name +resource "null_resource" "kubeconfig_file" { + triggers = { + project_id = var.project_id + region = var.region + cluster_name = var.gke_name + kubeconfig_path = var.kubeconfig_output_path + } depends_on = [ resource.google_container_cluster.gke_core ] -} -resource "local_file" "kubeconfig" { - content = module.gke_auth.kubeconfig_raw - filename = var.kubeconfig_output_path -} \ No newline at end of file + provisioner "local-exec" { + command = "KUBECONFIG=${self.triggers.kubeconfig_path} gcloud container clusters get-credentials ${self.triggers.cluster_name} --region ${self.triggers.region} --project ${self.triggers.project_id}" + } +} diff --git a/infrastructure/terraform/modules/gcp-gke/outputs.tf b/infrastructure/terraform/modules/gcp-gke/outputs.tf index 0f504b8135..e055a5317e 100644 --- a/infrastructure/terraform/modules/gcp-gke/outputs.tf +++ b/infrastructure/terraform/modules/gcp-gke/outputs.tf @@ -3,13 +3,7 @@ output "kubernetes_cluster_name" { description = "GKE Cluster Name" } -output "kubeconfig_raw" { - sensitive = true - value = module.gke_auth.kubeconfig_raw +output "kubeconfig_path" { + description = "The path of the generated KUBECONFIG file" + value = var.kubeconfig_output_path } - -output "kubeconfig_output_path" { - value = var.kubeconfig_output_path -} - - From e4db83ce050e3ba04ff566d20645c1a5448cc7b9 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Tue, 15 Nov 2022 14:05:35 +0100 Subject: [PATCH 21/28] [#3939] Fix showing airy products in connectors (#3940) --- .../control-center/src/pages/Connectors/index.tsx | 15 +++++++++++---- .../pages/Status/ComponentListItem/ItemInfo.tsx | 11 +++++++++-- lib/typescript/model/Source.ts | 4 +--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/frontend/control-center/src/pages/Connectors/index.tsx b/frontend/control-center/src/pages/Connectors/index.tsx index 0e6a78820f..6db8855098 100644 --- a/frontend/control-center/src/pages/Connectors/index.tsx +++ b/frontend/control-center/src/pages/Connectors/index.tsx @@ -1,6 +1,6 @@ import React, {useEffect} from 'react'; import {connect, ConnectedProps} from 'react-redux'; -import {airyProduct, Connector, InstallationStatus} from 'model'; +import {Connector, InstallationStatus, Source} from 'model'; import InfoCard from './InfoCard'; import {StateModel} from '../../reducers'; import {setPageTitle} from '../../services/pageTitle'; @@ -24,12 +24,19 @@ const Connectors = (props: ConnectedProps) => { const installedConnectors = Object.values(connectors).filter( (connector: Connector) => connector.installationStatus === InstallationStatus.installed && - connector.source !== airyProduct && + connector.source !== Source.airyContacts && + connector.source !== Source.airyWebhooks && + connector.source !== Source.airyMobile && connector.price ); const hasAvailableConnectors = - Object.values(connectors).filter((connector: Connector) => connector.source !== airyProduct && connector.price) - .length > 0; + Object.values(connectors).filter( + (connector: Connector) => + connector.source !== Source.airyContacts && + connector.source !== Source.airyMobile && + connector.source !== Source.airyWebhooks && + connector.price + ).length > 0; const hasInstalledComponents = installedConnectors.length > 0; const pageTitle = 'Connectors'; diff --git a/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx b/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx index 2518bde51a..a279f06dc6 100644 --- a/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx +++ b/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx @@ -5,7 +5,7 @@ import {ReactComponent as CheckmarkIcon} from 'assets/images/icons/checkmarkFill import {ReactComponent as UncheckedIcon} from 'assets/images/icons/uncheckIcon.svg'; import {ReactComponent as ArrowRight} from 'assets/images/icons/arrowRight.svg'; import {getChannelAvatar} from '../../../components/ChannelAvatar'; -import {Source, airyProduct} from 'model'; +import {Source} from 'model'; import {SettingsModal, Button, Toggle, Tooltip} from 'components'; import {connect, ConnectedProps, useSelector} from 'react-redux'; import {useTranslation} from 'react-i18next'; @@ -44,7 +44,14 @@ const ItemInfo = (props: ComponentInfoProps) => { let isConfigurable = false; Object.entries(catalogList).forEach(elem => { - if (elem[1] && elem[1].source && elem[1].source === source && elem[1].source !== airyProduct) + if ( + elem[1] && + elem[1].source && + elem[1].source === source && + elem[1].source !== Source.airyContacts && + elem[1].source !== Source.airyMobile && + elem[1].source !== Source.airyWebhooks + ) isConfigurable = true; }); diff --git a/lib/typescript/model/Source.ts b/lib/typescript/model/Source.ts index 3e791406bb..6978a8fd31 100644 --- a/lib/typescript/model/Source.ts +++ b/lib/typescript/model/Source.ts @@ -1,5 +1,6 @@ export enum Source { airyContacts = 'airyContacts', + airyMobile = 'mobile', airyWebhooks = 'webhooks', facebook = 'facebook', google = 'google', @@ -15,7 +16,6 @@ export enum Source { cognigy = 'cognigy', rasa = 'rasa', amelia = 'amelia', - mobile = 'mobile', whatsapp = 'whatsapp', frontendInbox = 'frontend-inbox', ibmWatsonAssistant = 'ibmWatsonAssistant', @@ -23,8 +23,6 @@ export enum Source { amazonLexV2 = 'amazonLexV2', } -export const airyProduct = Source.airyContacts && Source.airyWebhooks; - export const prettifySource = (source: string) => source .split('.') From 84728c1f0314489407c561ba4e205cd8809617f3 Mon Sep 17 00:00:00 2001 From: Bilge <116078532+bilge-cakmak@users.noreply.github.com> Date: Tue, 15 Nov 2022 15:03:17 +0100 Subject: [PATCH 22/28] [#2456] Documentation update for consuming Kafka messages (#3938) --- docs/docs/getting-started/quickstart.md | 14 +++++++++----- .../quickstart/messages_topic.gif | Bin 75930 -> 221745 bytes 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/docs/getting-started/quickstart.md b/docs/docs/getting-started/quickstart.md index 3ab2e8c9fb..e8e211281b 100644 --- a/docs/docs/getting-started/quickstart.md +++ b/docs/docs/getting-started/quickstart.md @@ -75,7 +75,7 @@ You can now type a message in the text box and send it 🎉 To see how messages are flowing through the system, [list conversations](/api/endpoints/conversations.md#list) for the channel you have just -created. It should return the message you have just sent. +created. It should return the message you have just sent. Make sure that you have the `jq` binary installed. ```shell script curl -XPOST http://localhost/conversations.list | jq . @@ -85,13 +85,17 @@ curl -XPOST http://localhost/conversations.list | jq . ## Step 4: Consume directly from Apache Kafka -You can also consume the messages directly from the Kafka -`application.communication.messages` topic: +Get a shell to the running `kafka-0` container: -```shell script +```bash kubectl exec -it kafka-0 -- /bin/bash +``` + +Then you can consume the events of the `application.communication.messages` topic directly from the `kafka-0` container shell: + +```bash kafka-console-consumer.sh \ ---bootstrap-server kafka:9092 \ +--bootstrap-server localhost:9092 \ --topic application.communication.messages \ --from-beginning ``` diff --git a/docs/static/img/getting-started/quickstart/messages_topic.gif b/docs/static/img/getting-started/quickstart/messages_topic.gif index 6bf9c5200d2003ec727b0487fcd1ff8544cb8dd3..bfe00881fb1121f6a7aef4d582ddd7960ed000d6 100644 GIT binary patch literal 221745 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
x^woT+gKSJYo#a~G6J#>#gd739F5uYRW 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 z zt+zoc7=1&b!X-RAi><^$#b#d;R0CRq6H%y0?s}ZdmYMMmu1VY7<*kV$8o@oW?O#jDfJdVH4YIoYRpgT{X@+|RS^ z%qS37VD|JzZ*yX8ZccXW;4YXxPmKl-n2Oq|K$4SK3;i``lq3Fr>Im*_Dekv*G5JZPA9$P4qx&SyUU2MVQ_deY>y~qS0AKVjpPMp zq5@r0abT zvglU{Xf76`qnWm|2+BesECeG&R1*Hz(w>_tSknR?14$V(Q<*HoJef#vpPE+;8P8I# zy&riF_q%n(w>(vBv7sEa21sEhrnx`{ARHxm3;PAsLk%+P2mTpT3HX4=vs zOgza*lo0kqv|9=5&n&aCV>VI&+*7_sRY3ih+J@$F!Mf^L6gl&{+ScC8x*bOHx69sk ze3QCt$zROytEFHFH=Zqy(*w;i2 ztSaxBiVAS}A8M7bX6Yt&qdi{((YVjI&ucrro!?Sw6{6+SlaX*VI&s{*!n+slZ^wcy z@3A?42N?3~-kB$UsLq6=Qn>ZW6Sx28Bn>6}_dH}fBqAYcYaujx+~$4!w#f{!<^76V zTX*z(%irc%_aFd~rPChsNa_zWMOmSM%8vSipi%CjW6#6o_Q2MU&_2#voMAdmv7gnM zH6k$)41xAnzICe~9dBwS1wllx&VXPlvadh)>+LMbbx-{U54mBP_VGrXg7v=dz5MK9 zLSjK~?$b7!?8@9LKl+4}PV#I>Crq(;!y^=$@02W^jv9TVPcI7?_8tvyhen5&FwKnU zhqMtdLfGh5j9~W6>FGQULrmLoGVicRqOi1?3{w`#*v6yz&YXd?qU zMby+~0)`yl9YbZU57+jd((Tx)mYUjGZ^RG52wD} zP`*Nhv>u)4y<8IsxVeP*a5!n*bVNxp$Wn4Pi884l?q@0dJ8z7(45F1OsX+kobTrM2DYZ5TTo&m z=S;DoOkVIkF4v;RN_C_yV9MW?C4e(a?T}34f4f-BOQgQHr>nLrX8Yre5|?O zHgM$>oG?UKN$(Oa(e{caId4&>*YZ~sPN^**8Ky~ae(#hn<7;jPN7tm}8z6+|svdcG z;AQ=;-F{ZX&(duF7;J#2zI?cbI6K898v?Is)>{luxL81tYk?pW9sYuRE4m3pHeur` zdoHkOb4j;hvd&qlhXC8?H|wQxkrHEt*XWWoDAJ2z)Mp8g0d56{=4QR?4TEb{o$tnX z!q$9eCo6KL8;om0ss1QqidV3M46%lw(ifJ*?z_^r7*hvreTr;))Cdi7x1Zm(5GxXZ z*T{`_DGR#rYn3fG9;OyuC@OIEml?!dd2h^6ir`qz!5eG{?%~Vm@74@X0um>fb{w=# zY`kz=TlOSQ;jspHg8JlDBgXe29_bB>jfm!H{Yz`cMPUt<)!cJ_E(b4bfa8L zrpkChM^My`Qxa>tDaAJK)V~#H>|YnE`EzRtyt=cYCrIe6qxZfKG&3dbrE+HYM4{5W z%w~}YMfSWojl6-OZYQ(b;H0W)S#K`yBt+8+P3;j9S{4G%PK8MtZ6KsDG;zO$hPK^j zimXG~hv|=q$T!*1mI!u&gG*I{@0s@Uoq5S`QOn;cfE|l3Pnv#wP8e9{K>o7T%|bgXE$%NOjJ zaIDYo?I2me9XJeiKyK*G*tv-m@7{vOdYPYJfBUYmHLCd7nSVL!^1B@Sy%>CNkACn& zD|k$;*gf(?Mcv5rsBFfdBJVZf{pY{v^z^{t=Pc~hdlxIUL$z+c7M=8qiA1bc zE(~{OXTjX-;BKi5jH_g~AK$H6J!|rA-puRU`dzng?ohsKr!=6`dvJobvq$Lq%&?M^ z$12_PVXZ~FUSemJi~T}O{5AWNa5r}~wjxv19EvKYB7T_P9AlgHM8NYr99WZs3?s|ycMq3op{n(-}4V^1;d&ficQ zzVa>#W0~Wg0N&wDbtlt$M4D8l+z#v=?V=Wg9}%Xm9EI5(;`S0TpkgRmoj1hj3GCQWH&qROLR;OqVGRCS2xK7RYJBf zAV|77@!vC~j=Ifc!B^ed7juMebHE0vFkq+ZiKN7Em# z(&)0-iAO5Xcq1Nf%K2>&F)7Q^#7ZrJ-P*T@j=7XTfk!Gqwo){zGah3sZ10zS5Q1}R zWYFukk3KOO&RVqcNQ8mNffD@oXy(2g;~X};SqFSkfSL%Q5NCr)wqz+i<%5i{n5>sY zR}ADVuZ^U5nRqM)Bk{5nooWZGDmVa-R*aTH|1Y5~>P$kbG=}k{f86mDa4u{yDt-dc zQYhWtdgjq81A9%{?_{-;Uuk*(pXUW;4duvfF6qvkY1#BmVPpi(Dg+|~5TBaE{NGBey6F-lVa5>vWV1>X88Hl!)VU_VQURuajCl8@R zU?e8E@=$NjOY045%&;PYgg~OGEvyi4IQ;caP96=)ycJ?_=ZcR>$HY1v~;rE{0?X=Q)n4&LSPOP!% z$(A~lrzLPNj>mAp#J_V}=*6(f1@d4@eO2?kJGIVL%EzEY*EwZ~RF!e-nt7>m5~oT@ zt0lXuaRT%ec+YMZS(NiNYWCo=8zS%J4RY+2%EGk@G-^D&MONwB1X|nhS>!l%NeGU+ zm`_S12G|DMx02E&&T|InkK5+23XXl(rMwUHNcZ^)45>F zGK$GytyV2^t^|WkW==&Vc9Vh&36DC}LadCwxhp7`-7;2P pOrmYNhUc|bnj26M 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 Date: Tue, 15 Nov 2022 10:27:08 -0500 Subject: [PATCH 23/28] [#3941] add ingress rule for /conversations.mark-read (#3942) --- .../co/airy/core/unread_counter/UnreadCounterController.java | 2 +- infrastructure/helm-chart/templates/components/ingress.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/components/unread-counter/src/main/java/co/airy/core/unread_counter/UnreadCounterController.java b/backend/components/unread-counter/src/main/java/co/airy/core/unread_counter/UnreadCounterController.java index 07f7723466..62b66928af 100644 --- a/backend/components/unread-counter/src/main/java/co/airy/core/unread_counter/UnreadCounterController.java +++ b/backend/components/unread-counter/src/main/java/co/airy/core/unread_counter/UnreadCounterController.java @@ -21,7 +21,7 @@ public class UnreadCounterController { this.stores = stores; } - @PostMapping({"/conversations.markRead", "/conversations.mark-read"}) + @PostMapping("/conversations.mark-read") ResponseEntity conversationMarkRead(@RequestBody @Valid MarkReadRequestPayload payload) { final String conversationId = payload.getConversationId().toString(); final ReadReceipt readReceipt = ReadReceipt.newBuilder() diff --git a/infrastructure/helm-chart/templates/components/ingress.yaml b/infrastructure/helm-chart/templates/components/ingress.yaml index 8043bcbef1..034715d605 100644 --- a/infrastructure/helm-chart/templates/components/ingress.yaml +++ b/infrastructure/helm-chart/templates/components/ingress.yaml @@ -36,7 +36,7 @@ spec: name: api-communication port: number: 80 - - path: /conversations.markRead + - path: /conversations.mark-read pathType: Prefix backend: service: From eaa106be8874d72815ca3283cf39996376c8e89f Mon Sep 17 00:00:00 2001 From: Bilge <116078532+bilge-cakmak@users.noreply.github.com> Date: Tue, 15 Nov 2022 17:42:47 +0100 Subject: [PATCH 24/28] [#3943] Fix of the gcp-gke terraform modules output file (#3944) --- infrastructure/terraform/install/gcp-gke/outputs.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrastructure/terraform/install/gcp-gke/outputs.tf b/infrastructure/terraform/install/gcp-gke/outputs.tf index d3d1837a61..717b7c8569 100644 --- a/infrastructure/terraform/install/gcp-gke/outputs.tf +++ b/infrastructure/terraform/install/gcp-gke/outputs.tf @@ -3,5 +3,5 @@ output "cluster_name" { } output "kubeconfig_path" { - value = module.gcp-gke.kubeconfig_output_path + value = module.gcp-gke.kubeconfig_path } From ffaae9cc22c2374bbf2ea2a2c5aa5ed529998324 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Wed, 16 Nov 2022 12:01:54 +0100 Subject: [PATCH 25/28] [#3949] Updated conversation.list docs (#3950) --- docs/docs/api/endpoints/components.md | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/docs/docs/api/endpoints/components.md b/docs/docs/api/endpoints/components.md index 5050feb985..806f3d6de1 100644 --- a/docs/docs/api/endpoints/components.md +++ b/docs/docs/api/endpoints/components.md @@ -125,14 +125,32 @@ List all the components, both installed and not installed. { "components": [ { - "name": "sources-facebook", + "availableFor": "Open-source, Enterprise, Managed cloud", + "category": "Conversation Source", + "configurationValues": "{ \"saFile\": \"string\", \"partnerKey\": \"string\"}", + "description": "
...
", + "displayName": "Google Business Messages", + "docs": "https://airy.co/docs/core/sources/google", + "installationStatus": "uninstalled|pending|installed", + "isChannel": "true", + "name": "sources-google", + "price": "Free", "repository": "airy-core", - "installed": true + "source": "google" }, { - "name": "sources-google", + "availableFor": "Open-source, Enterprise, Managed cloud", + "category": "Conversation Source", + "configurationValues": "{ \"appId\": \"string\", \"appSecret\": \"string\", \"webhookSecret\": \"string\"}", + "description": "
...
", + "displayName": "Facebook Messenger", + "docs": "https://airy.co/docs/core/sources/facebook", + "installationStatus": "uninstalled|pending|installed", + "isChannel": "true", + "name": "sources-facebook", + "price": "Free", "repository": "airy-core", - "installed": false + "source": "facebook" } ] } From 439e1f33c442a56e423d08f2f974bebf70860df1 Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Wed, 16 Nov 2022 12:23:13 +0100 Subject: [PATCH 26/28] Fixes #3951 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 601104cb82..4f9b378b40 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.52.0-alpha +0.52.0 From cd29604155d437f4feaa888aa5f744722688380c Mon Sep 17 00:00:00 2001 From: Bilge Date: Wed, 16 Nov 2022 17:46:52 +0100 Subject: [PATCH 27/28] Changed whatsapp connector helm value to enabled false --- backend/components/whatsapp/helm/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/components/whatsapp/helm/values.yaml b/backend/components/whatsapp/helm/values.yaml index 1c6b478e75..3135b7af52 100644 --- a/backend/components/whatsapp/helm/values.yaml +++ b/backend/components/whatsapp/helm/values.yaml @@ -1,6 +1,6 @@ name: sources-whatsapp mandatory: false -enabled: true +enabled: false connector: image: sources/whatsapp-connector resources: {} From 611210385e5613cdaff16442d28904f93ad25f86 Mon Sep 17 00:00:00 2001 From: Audrey Kadjar Date: Thu, 17 Nov 2022 14:25:41 +0100 Subject: [PATCH 28/28] Update changelog # --- docs/docs/changelog.md | 165 ++++++++++++++++++++++++----------------- 1 file changed, 99 insertions(+), 66 deletions(-) diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index 7b638a7da7..bff0150c73 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -3,6 +3,105 @@ title: Changelog sidebar_label: 📝 Changelog --- +## 0.52.0 + +#### Changes + +- [[#3943](https://github.com/airyhq/airy/issues/3943)] Fix of the gcp-gke terraform modules output file [[#3944](https://github.com/airyhq/airy/pull/3944)] +- Revert "[[#3878](https://github.com/airyhq/airy/issues/3878)] Adding Loading indicators to control-center" [[#3916](https://github.com/airyhq/airy/pull/3916)] + +#### 🚀 Features + +- [[#3927](https://github.com/airyhq/airy/issues/3927)] Added airy contacts to catalog [[#3932](https://github.com/airyhq/airy/pull/3932)] +- [[#3764](https://github.com/airyhq/airy/issues/3764)] Kafka 3.3.1 docker image and helm chart [[#3882](https://github.com/airyhq/airy/pull/3882)] +- [[#3878](https://github.com/airyhq/airy/issues/3878)] Adding Loading indicators to control-center [[#3922](https://github.com/airyhq/airy/pull/3922)] +- [[#3901](https://github.com/airyhq/airy/issues/3901)] Create kafka topic for components events [[#3914](https://github.com/airyhq/airy/pull/3914)] +- [[#3878](https://github.com/airyhq/airy/issues/3878)] Adding Loading indicators to control-center [[#3906](https://github.com/airyhq/airy/pull/3906)] + +#### 🐛 Bug Fixes + +- [[#3941](https://github.com/airyhq/airy/issues/3941)] add ingress rule for /conversations.mark-read [[#3942](https://github.com/airyhq/airy/pull/3942)] +- [[#3939](https://github.com/airyhq/airy/issues/3939)] Fix showing airy products in connectors [[#3940](https://github.com/airyhq/airy/pull/3940)] +- [[#3923](https://github.com/airyhq/airy/issues/3923)] Use auth-provider in GCP kubeconfig file [[#3924](https://github.com/airyhq/airy/pull/3924)] +- [[#3907](https://github.com/airyhq/airy/issues/3907)] fixed input disable [[#3913](https://github.com/airyhq/airy/pull/3913)] +- [[#3909](https://github.com/airyhq/airy/issues/3909)] rasa control center fix [[#3911](https://github.com/airyhq/airy/pull/3911)] +- [[#3886](https://github.com/airyhq/airy/issues/3886)] fixed status page error [[#3903](https://github.com/airyhq/airy/pull/3903)] +- [[#3894](https://github.com/airyhq/airy/issues/3894)] fixes for ibm watson assistant [[#3898](https://github.com/airyhq/airy/pull/3898)] + +#### 📚 Documentation + +- [[#3949](https://github.com/airyhq/airy/issues/3949)] Updated conversation.list docs [[#3950](https://github.com/airyhq/airy/pull/3950)] +- [[#2456](https://github.com/airyhq/airy/issues/2456)] Documentation update in quickstart - consume from Kafka [[#3938](https://github.com/airyhq/airy/pull/3938)] +- [[#3646](https://github.com/airyhq/airy/issues/3646)] update airy cli for gcp provider [[#3904](https://github.com/airyhq/airy/pull/3904)] +- [[#3905](https://github.com/airyhq/airy/issues/3905)] rasa docs update [[#3912](https://github.com/airyhq/airy/pull/3912)] +- [[#3819](https://github.com/airyhq/airy/issues/3819)] docs for ibm watson assistant [[#3889](https://github.com/airyhq/airy/pull/3889)] + +#### 🧰 Maintenance + +- Bump jest-environment-jsdom from 29.2.0 to 29.2.2 [[#3896](https://github.com/airyhq/airy/pull/3896)] + +#### Airy CLI + +You can download the Airy CLI for your operating system from the following links: + +[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.52.0/darwin/amd64/airy) +[Linux](https://airy-core-binaries.s3.amazonaws.com/0.52.0/linux/amd64/airy) +[Windows](https://airy-core-binaries.s3.amazonaws.com/0.52.0/windows/amd64/airy.exe) + +## 0.51.0 + +#### 🚀 Features + +- [[#3881](https://github.com/airyhq/airy/issues/3881)] Increase timeout for helm job +- [[#3864](https://github.com/airyhq/airy/issues/3864)] Improved configure connectors container [[#3865](https://github.com/airyhq/airy/pull/3865)] +- [[#3642](https://github.com/airyhq/airy/issues/3642)] Added tooltips channel connectors [[#3859](https://github.com/airyhq/airy/pull/3859)] +- [[#3719](https://github.com/airyhq/airy/issues/3719)] Updating all Source Connector [[#3849](https://github.com/airyhq/airy/pull/3849)] +- [[#3825](https://github.com/airyhq/airy/issues/3825)] Support Cognigy AI non text flow nodes [[#3826](https://github.com/airyhq/airy/pull/3826)] +- [[#3839](https://github.com/airyhq/airy/issues/3839)] Adapted connectors useSelector according components.get +- [[#3822](https://github.com/airyhq/airy/issues/3822)] Added Notification Configurations [[#3834](https://github.com/airyhq/airy/pull/3834)] +- [[#3693](https://github.com/airyhq/airy/issues/3693)] API components installer [[#3761](https://github.com/airyhq/airy/pull/3761)] +- [[#3762](https://github.com/airyhq/airy/issues/3762)] Cognigy connector [[#3778](https://github.com/airyhq/airy/pull/3778)] + +#### 🐛 Bug Fixes + +- [[#3862](https://github.com/airyhq/airy/issues/3862)] Fixed icons and improved animations [[#3863](https://github.com/airyhq/airy/pull/3863)] +- [[#3835](https://github.com/airyhq/airy/issues/3835)] Fix unread counter crash [[#3836](https://github.com/airyhq/airy/pull/3836)] +- [[#3820](https://github.com/airyhq/airy/issues/3820)] Fixes for Cognigy AI on Control Center [[#3821](https://github.com/airyhq/airy/pull/3821)] +- [[#3813](https://github.com/airyhq/airy/issues/3813)] Fixes to SearchBar on the Control Center UI [[#3818](https://github.com/airyhq/airy/pull/3818)] +- [[#3804](https://github.com/airyhq/airy/issues/3804)] Fix using existing subnets for AWS [[#3812](https://github.com/airyhq/airy/pull/3812)] +- [[#3800](https://github.com/airyhq/airy/issues/3800)] Minor fixes [[#3803](https://github.com/airyhq/airy/pull/3803)] + +#### 📚 Documentation + +- [[#3801](https://github.com/airyhq/airy/issues/3801)] Cognigy AI docs [[#3807](https://github.com/airyhq/airy/pull/3807)] + +#### 🧰 Maintenance + +- Bump @types/node from 18.8.2 to 18.11.4 [[#3872](https://github.com/airyhq/airy/pull/3872)] +- Bump react-redux from 8.0.2 to 8.0.4 [[#3772](https://github.com/airyhq/airy/pull/3772)] +- Bump @testing-library/dom from 8.18.1 to 8.19.0 [[#3846](https://github.com/airyhq/airy/pull/3846)] +- Bump i18next from 21.9.2 to 21.10.0 [[#3847](https://github.com/airyhq/airy/pull/3847)] +- Bump @babel/preset-env from 7.19.3 to 7.19.4 [[#3848](https://github.com/airyhq/airy/pull/3848)] +- Bump @pmmmwh/react-refresh-webpack-plugin from 0.5.7 to 0.5.8 [[#3843](https://github.com/airyhq/airy/pull/3843)] +- Bump @svgr/webpack from 6.4.0 to 6.5.0 [[#3845](https://github.com/airyhq/airy/pull/3845)] +- Bump babel-jest from 29.1.2 to 29.2.0 [[#3842](https://github.com/airyhq/airy/pull/3842)] +- Bump cypress from 10.9.0 to 10.10.0 [[#3844](https://github.com/airyhq/airy/pull/3844)] +- Bump @babel/plugin-proposal-object-rest-spread from 7.18.9 to 7.19.4 [[#3837](https://github.com/airyhq/airy/pull/3837)] +- Bump @svgr/plugin-svgo from 6.3.1 to 6.5.0 [[#3831](https://github.com/airyhq/airy/pull/3831)] +- Bump jest-environment-jsdom from 29.1.2 to 29.2.0 [[#3832](https://github.com/airyhq/airy/pull/3832)] +- Bump minimist from 1.2.6 to 1.2.7 [[#3833](https://github.com/airyhq/airy/pull/3833)] +- Bump eslint-plugin-react from 7.31.8 to 7.31.10 [[#3828](https://github.com/airyhq/airy/pull/3828)] +- Bump @reduxjs/toolkit from 1.8.5 to 1.8.6 [[#3808](https://github.com/airyhq/airy/pull/3808)] +- Bump preact from 10.11.0 to 10.11.2 [[#3829](https://github.com/airyhq/airy/pull/3829)] + +#### Airy CLI + +You can download the Airy CLI for your operating system from the following links: + +[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.51.0/darwin/amd64/airy) +[Linux](https://airy-core-binaries.s3.amazonaws.com/0.51.0/linux/amd64/airy) +[Windows](https://airy-core-binaries.s3.amazonaws.com/0.51.0/windows/amd64/airy.exe) + ## 0.50.1 #### Hotfix @@ -1264,69 +1363,3 @@ You can download the Airy CLI for your operating system from the following links [Linux](https://airy-core-binaries.s3.amazonaws.com/0.32.0/linux/amd64/airy) [Windows](https://airy-core-binaries.s3.amazonaws.com/0.32.0/windows/amd64/airy.exe) -## 0.31.1 - -#### 🚀 Features - -- [[#2432](https://github.com/airyhq/airy/issues/2432)] Added more options to the UI [[#2433](https://github.com/airyhq/airy/pull/2433)] -- [[#2393](https://github.com/airyhq/airy/issues/2393)] Add more chatplugin options [[#2431](https://github.com/airyhq/airy/pull/2431)] - -#### 🐛 Bug Fixes - -- [[#2390](https://github.com/airyhq/airy/issues/2390)] Fix duplicate ingress port definition [[#2446](https://github.com/airyhq/airy/pull/2446)] -- [[#2390](https://github.com/airyhq/airy/issues/2390)] Fix serviceAccount for helm [[#2442](https://github.com/airyhq/airy/pull/2442)] - -#### 🧰 Enhancements - -- [[#2390](https://github.com/airyhq/airy/issues/2390)] HTTPS termination at LB level [[#2427](https://github.com/airyhq/airy/pull/2427)] - -#### Airy CLI - -You can download the Airy CLI for your operating system from the following links: - -[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.31.1/darwin/amd64/airy) -[Linux](https://airy-core-binaries.s3.amazonaws.com/0.31.1/linux/amd64/airy) -[Windows](https://airy-core-binaries.s3.amazonaws.com/0.31.1/windows/amd64/airy.exe) - -## 0.31.0 - -#### 🚀 Features - -- [[#628](https://github.com/airyhq/airy/issues/628)] Make library compatible with node.js [[#2426](https://github.com/airyhq/airy/pull/2426)] -- [[#2405](https://github.com/airyhq/airy/issues/2405)] Icons for Rendering/Sending File Attachments [[#2420](https://github.com/airyhq/airy/pull/2420)] -- [[#2406](https://github.com/airyhq/airy/issues/2406)] Instagram Source: Render Messages with Media & Share in Inbox UI [[#2419](https://github.com/airyhq/airy/pull/2419)] -- [[#2109](https://github.com/airyhq/airy/issues/2109)] Render send file attachments via facebook messenger [[#2404](https://github.com/airyhq/airy/pull/2404)] -- [[#2257](https://github.com/airyhq/airy/issues/2257)] Add analytics demo [[#2325](https://github.com/airyhq/airy/pull/2325)] - -#### 🐛 Bug Fixes - -- [[#2390](https://github.com/airyhq/airy/issues/2390)] Add ingress class for ngrok [[#2408](https://github.com/airyhq/airy/pull/2408)] -- [[#2390](https://github.com/airyhq/airy/issues/2390)] Switch to nginx ingress controller [[#2402](https://github.com/airyhq/airy/pull/2402)] -- [[#2394](https://github.com/airyhq/airy/issues/2394)] Fixes source api ingress typo [[#2395](https://github.com/airyhq/airy/pull/2395)] - -#### 📚 Documentation - -- [[#2401](https://github.com/airyhq/airy/issues/2401)] Improve AWS docs [[#2409](https://github.com/airyhq/airy/pull/2409)] -- [[#2257](https://github.com/airyhq/airy/issues/2257)] Rename files [[#2412](https://github.com/airyhq/airy/pull/2412)] -- [[#2390](https://github.com/airyhq/airy/issues/2390)] Document supported Minikube versions [[#2391](https://github.com/airyhq/airy/pull/2391)] - -#### 🧰 Maintenance - -- Bump cypress from 8.3.1 to 8.4.1 [[#2418](https://github.com/airyhq/airy/pull/2418)] -- Bump @babel/preset-env from 7.15.4 to 7.15.6 [[#2417](https://github.com/airyhq/airy/pull/2417)] -- Bump axios from 0.21.1 to 0.21.4 in /docs [[#2410](https://github.com/airyhq/airy/pull/2410)] -- Bump @types/node from 16.7.13 to 16.9.4 [[#2415](https://github.com/airyhq/airy/pull/2415)] -- Bump terser-webpack-plugin from 5.2.3 to 5.2.4 [[#2398](https://github.com/airyhq/airy/pull/2398)] - -#### Airy CLI - -You can download the Airy CLI for your operating system from the following links: - -[MacOS](https://airy-core-binaries.s3.amazonaws.com/0.31.0/darwin/amd64/airy) -[Linux](https://airy-core-binaries.s3.amazonaws.com/0.31.0/linux/amd64/airy) -[Windows](https://airy-core-binaries.s3.amazonaws.com/0.31.0/windows/amd64/airy.exe) - -#### Upgrade notes - -In the `airy.yaml` file, `host` is moved from the `kubernetes` section, into the `ingress` section. -