diff --git a/README.md b/README.md index f1bce55..8c0b997 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,17 @@ -# JumpTheQueueGallery -Various implementations of JumpTheQueue + +JUMP THE QUEUE +When visiting public (free) or private (paid) events there are often large queues creating significant waiting times. Ideally the organizer of the event would like to streamline the entry of people into the venue. If people were to arrive right on time they could get into line more efficiently. A website or application could support this process by assigning visitors a queue number. This document describes the design of such a website/application, appropriately named JumpTheQueue. + + + +Technical Architecture: +We have designed our application in 3 layered architecture. these are divided as follows:- +For front end we have used devon4ng in angular and for backend we have used devon4j in java. + + + +Execution: For the execution of front end 'devon ng serve' command has been used. For backend execution we have run the application in Eclipse.. + For checking the backend functionalities we have used Postman. + For checking the frontend functionalities we have used chrome. + +Integration: We have integrated backend and frontend using the REST API calls. \ No newline at end of file diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 0000000..1b64d26 --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,21 @@ +.* +!.github +!.gitignore +!.mvn +!.travis.yml +*.bak +*.log +*.class +*.diff +*.patch +*.iml +*.jar +*.war +*.ear +hs_err_pid* + +target +eclipse-target +war +**/src/generated/ +**/tmp/ diff --git a/backend/api/pom.xml b/backend/api/pom.xml new file mode 100644 index 0000000..0b7e415 --- /dev/null +++ b/backend/api/pom.xml @@ -0,0 +1,45 @@ + + + 4.0.0 + + com.devonfw.java.jtqbackend + jtqbackend + 0.0.1 + + jtqbackend-api + jar + ${project.artifactId} + API of the server for the jtqbackend application (containing datatypes, transfer-objects, and service interfaces). + + + + org.springframework.data + spring-data-commons + + + com.devonfw.java.modules + devon4j-rest + + + com.devonfw.java.modules + devon4j-logging + + + com.devonfw.java.modules + devon4j-security + + + + javax.servlet + javax.servlet-api + provided + + + + com.devonfw.java.modules + devon4j-test + test + + + diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/common/api/Event.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/common/api/Event.java new file mode 100644 index 0000000..86c7b0b --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/common/api/Event.java @@ -0,0 +1,105 @@ +package com.devonfw.application.jtqbackend.eventmanagement.common.api; + +import java.sql.Timestamp; + +import com.devonfw.application.jtqbackend.general.common.api.ApplicationEntity; + +public interface Event extends ApplicationEntity { + + /** + * @return eventNameId + */ + + public String getEventName(); + + /** + * @param eventName setter for eventName attribute + */ + + public void setEventName(String eventName); + + /** + * @return startDateId + */ + + public Timestamp getStartDate(); + + /** + * @param startDate setter for startDate attribute + */ + + public void setStartDate(Timestamp startDate); + + /** + * @return endDateId + */ + + public Timestamp getEndDate(); + + /** + * @param endDate setter for endDate attribute + */ + + public void setEndDate(Timestamp endDate); + + /** + * @return locationId + */ + + public String getLocation(); + + /** + * @param location setter for location attribute + */ + + public void setLocation(String location); + + /** + * @return descriptionId + */ + + public String getDescription(); + + /** + * @param description setter for description attribute + */ + + public void setDescription(String description); + + /** + * @return logoId + */ + + public String getLogo(); + + /** + * @param logo setter for logo attribute + */ + + public void setLogo(String logo); + + /** + * @return attentionTimeId + */ + + public String getAttentionTime(); + + /** + * @param attentionTime setter for attentionTime attribute + */ + + public void setAttentionTime(String attentionTime); + + /** + * @return visitorCountId + */ + + public int getVisitorCount(); + + /** + * @param visitorCount setter for visitorCount attribute + */ + + public void setVisitorCount(int visitorCount); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/Eventmanagement.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/Eventmanagement.java new file mode 100644 index 0000000..610b594 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/Eventmanagement.java @@ -0,0 +1,11 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.api; + +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.usecase.UcFindEvent; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.usecase.UcManageEvent; + +/** + * Interface for Eventmanagement component. + */ +public interface Eventmanagement extends UcFindEvent, UcManageEvent { + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventCto.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventCto.java new file mode 100644 index 0000000..8c634ce --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventCto.java @@ -0,0 +1,24 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.api.to; + +import com.devonfw.module.basic.common.api.to.AbstractCto; + +/** + * Composite transport object of Event + */ +public class EventCto extends AbstractCto { + + private static final long serialVersionUID = 1L; + + private EventEto event; + + public EventEto getEvent() { + + return event; + } + + public void setEvent(EventEto event) { + + this.event = event; + } + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventEto.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventEto.java new file mode 100644 index 0000000..e2d73a1 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventEto.java @@ -0,0 +1,211 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.api.to; + +import java.sql.Timestamp; + +import com.devonfw.application.jtqbackend.eventmanagement.common.api.Event; +import com.devonfw.module.basic.common.api.to.AbstractEto; + +/** + * Entity transport object of Event + */ +public class EventEto extends AbstractEto implements Event { + + private static final long serialVersionUID = 1L; + + private String eventName; + + private Timestamp startDate; + + private Timestamp endDate; + + private String location; + + private String description; + + private String logo; + + private String attentionTime; + + private int visitorCount; + + @Override + public String getEventName() { + + return this.eventName; + } + + @Override + public void setEventName(String eventName) { + + this.eventName = eventName; + } + + @Override + public Timestamp getStartDate() { + + return this.startDate; + } + + @Override + public void setStartDate(Timestamp startDate) { + + this.startDate = startDate; + } + + @Override + public Timestamp getEndDate() { + + return this.endDate; + } + + @Override + public void setEndDate(Timestamp endDate) { + + this.endDate = endDate; + } + + @Override + public String getLocation() { + + return this.location; + } + + @Override + public void setLocation(String location) { + + this.location = location; + } + + @Override + public String getDescription() { + + return this.description; + } + + @Override + public void setDescription(String description) { + + this.description = description; + } + + @Override + public String getLogo() { + + return this.logo; + } + + @Override + public void setLogo(String logo) { + + this.logo = logo; + } + + @Override + public String getAttentionTime() { + + return this.attentionTime; + } + + @Override + public void setAttentionTime(String attentionTime) { + + this.attentionTime = attentionTime; + } + + @Override + public int getVisitorCount() { + + return this.visitorCount; + } + + @Override + public void setVisitorCount(int visitorCount) { + + this.visitorCount = visitorCount; + } + + @Override + public int hashCode() { + + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((this.eventName == null) ? 0 : this.eventName.hashCode()); + result = prime * result + ((this.startDate == null) ? 0 : this.startDate.hashCode()); + result = prime * result + ((this.endDate == null) ? 0 : this.endDate.hashCode()); + result = prime * result + ((this.location == null) ? 0 : this.location.hashCode()); + result = prime * result + ((this.description == null) ? 0 : this.description.hashCode()); + result = prime * result + ((this.logo == null) ? 0 : this.logo.hashCode()); + result = prime * result + ((this.attentionTime == null) ? 0 : this.attentionTime.hashCode()); + result = prime * result + ((Integer) this.visitorCount).hashCode(); + return result; + } + + @Override + public boolean equals(Object obj) { + + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + // class check will be done by super type EntityTo! + if (!super.equals(obj)) { + return false; + } + EventEto other = (EventEto) obj; + if (this.eventName == null) { + if (other.eventName != null) { + return false; + } + } else if (!this.eventName.equals(other.eventName)) { + return false; + } + if (this.startDate == null) { + if (other.startDate != null) { + return false; + } + } else if (!this.startDate.equals(other.startDate)) { + return false; + } + if (this.endDate == null) { + if (other.endDate != null) { + return false; + } + } else if (!this.endDate.equals(other.endDate)) { + return false; + } + if (this.location == null) { + if (other.location != null) { + return false; + } + } else if (!this.location.equals(other.location)) { + return false; + } + if (this.description == null) { + if (other.description != null) { + return false; + } + } else if (!this.description.equals(other.description)) { + return false; + } + if (this.logo == null) { + if (other.logo != null) { + return false; + } + } else if (!this.logo.equals(other.logo)) { + return false; + } + if (this.attentionTime == null) { + if (other.attentionTime != null) { + return false; + } + } else if (!this.attentionTime.equals(other.attentionTime)) { + return false; + } + if (this.visitorCount != other.visitorCount) { + return false; + } + return true; + } +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventSearchCriteriaTo.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventSearchCriteriaTo.java new file mode 100644 index 0000000..96cbaab --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/to/EventSearchCriteriaTo.java @@ -0,0 +1,266 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.api.to; + +import java.sql.Timestamp; + +import com.devonfw.application.jtqbackend.general.common.api.to.AbstractSearchCriteriaTo; +import com.devonfw.module.basic.common.api.query.StringSearchConfigTo; + +/** + * {@link SearchCriteriaTo} to find instances of + * {@link com.devonfw.application.jtqbackend.eventmanagement.common.api.Event}s. + */ +public class EventSearchCriteriaTo extends AbstractSearchCriteriaTo { + + private static final long serialVersionUID = 1L; + + private String eventName; + + private Timestamp startDate; + + private Timestamp endDate; + + private String location; + + private String description; + + private String logo; + + private String attentionTime; + + private Integer visitorCount; + + private StringSearchConfigTo eventNameOption; + + private StringSearchConfigTo locationOption; + + private StringSearchConfigTo descriptionOption; + + private StringSearchConfigTo logoOption; + + private StringSearchConfigTo attentionTimeOption; + + /** + * @return eventNameId + */ + + public String getEventName() { + + return this.eventName; + } + + /** + * @param eventName setter for eventName attribute + */ + + public void setEventName(String eventName) { + + this.eventName = eventName; + } + + /** + * @return startDateId + */ + + public Timestamp getStartDate() { + + return this.startDate; + } + + /** + * @param startDate setter for startDate attribute + */ + + public void setStartDate(Timestamp startDate) { + + this.startDate = startDate; + } + + /** + * @return endDateId + */ + + public Timestamp getEndDate() { + + return this.endDate; + } + + /** + * @param endDate setter for endDate attribute + */ + + public void setEndDate(Timestamp endDate) { + + this.endDate = endDate; + } + + /** + * @return locationId + */ + + public String getLocation() { + + return this.location; + } + + /** + * @param location setter for location attribute + */ + + public void setLocation(String location) { + + this.location = location; + } + + /** + * @return descriptionId + */ + + public String getDescription() { + + return this.description; + } + + /** + * @param description setter for description attribute + */ + + public void setDescription(String description) { + + this.description = description; + } + + /** + * @return logoId + */ + + public String getLogo() { + + return this.logo; + } + + /** + * @param logo setter for logo attribute + */ + + public void setLogo(String logo) { + + this.logo = logo; + } + + /** + * @return attentionTimeId + */ + + public String getAttentionTime() { + + return this.attentionTime; + } + + /** + * @param attentionTime setter for attentionTime attribute + */ + + public void setAttentionTime(String attentionTime) { + + this.attentionTime = attentionTime; + } + + /** + * @return visitorCountId + */ + + public Integer getVisitorCount() { + + return this.visitorCount; + } + + /** + * @param visitorCount setter for visitorCount attribute + */ + + public void setVisitorCount(Integer visitorCount) { + + this.visitorCount = visitorCount; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getEventName() eventName}. + */ + public StringSearchConfigTo getEventNameOption() { + + return this.eventNameOption; + } + + /** + * @param eventNameOption new value of {@link #getEventNameOption()}. + */ + public void setEventNameOption(StringSearchConfigTo eventNameOption) { + + this.eventNameOption = eventNameOption; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getLocation() location}. + */ + public StringSearchConfigTo getLocationOption() { + + return this.locationOption; + } + + /** + * @param locationOption new value of {@link #getLocationOption()}. + */ + public void setLocationOption(StringSearchConfigTo locationOption) { + + this.locationOption = locationOption; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getDescription() description}. + */ + public StringSearchConfigTo getDescriptionOption() { + + return this.descriptionOption; + } + + /** + * @param descriptionOption new value of {@link #getDescriptionOption()}. + */ + public void setDescriptionOption(StringSearchConfigTo descriptionOption) { + + this.descriptionOption = descriptionOption; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getLogo() logo}. + */ + public StringSearchConfigTo getLogoOption() { + + return this.logoOption; + } + + /** + * @param logoOption new value of {@link #getLogoOption()}. + */ + public void setLogoOption(StringSearchConfigTo logoOption) { + + this.logoOption = logoOption; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getAttentionTime() attentionTime}. + */ + public StringSearchConfigTo getAttentionTimeOption() { + + return this.attentionTimeOption; + } + + /** + * @param attentionTimeOption new value of {@link #getAttentionTimeOption()}. + */ + public void setAttentionTimeOption(StringSearchConfigTo attentionTimeOption) { + + this.attentionTimeOption = attentionTimeOption; + } + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/usecase/UcFindEvent.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/usecase/UcFindEvent.java new file mode 100644 index 0000000..cba14ed --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/usecase/UcFindEvent.java @@ -0,0 +1,45 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.api.usecase; + +import java.util.List; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventCto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventSearchCriteriaTo; + +public interface UcFindEvent { + + /** + * Returns a Event by its id 'id'. + * + * @param id The id 'id' of the Event. + * @return The {@link EventEto} with id 'id' + */ + EventEto findEvent(long id); + + /** + * Returns a paginated list of Events matching the search criteria. + * + * @param criteria the {@link EventSearchCriteriaTo}. + * @return the {@link List} of matching {@link EventEto}s. + */ + Page findEvents(EventSearchCriteriaTo criteria); + + /** + * Returns a composite Event by its id 'id'. + * + * @param id The id 'id' of the Event. + * @return The {@link EventCto} with id 'id' + */ + EventCto findEventCto(long id); + + /** + * Returns a paginated list of composite Events matching the search criteria. + * + * @param criteria the {@link EventSearchCriteriaTo}. + * @return the {@link List} of matching {@link EventCto}s. + */ + Page findEventCtos(EventSearchCriteriaTo criteria); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/usecase/UcManageEvent.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/usecase/UcManageEvent.java new file mode 100644 index 0000000..8690730 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/api/usecase/UcManageEvent.java @@ -0,0 +1,40 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.api.usecase; + +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; + +/** + * Interface of UcManageEvent to centralize documentation and signatures of methods. + */ +public interface UcManageEvent { + + /** + * Deletes a event from the database by its id 'eventId'. + * + * @param eventId Id of the event to delete + * @return boolean true if the event can be deleted, false otherwise + */ + boolean deleteEvent(long eventId); + + /** + * Saves a event and store it in the database. + * + * @param event the {@link EventEto} to create. + * @return the new {@link EventEto} that has been saved with ID and version. + */ + EventEto saveEvent(EventEto event); + + /** + * Decrease number of customers of the queue and update the queue. + * + * @param queueId id of the queue to decrease customer. + */ + void decreaseEventVisitorCount(long eventId); + + /** + * Increase number of customers of the queue and update the queue. + * + * @param queueId id of the queue to increase customer. + */ + void increaseEventVisitorCount(long eventId); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/service/api/rest/EventmanagementRestService.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/service/api/rest/EventmanagementRestService.java new file mode 100644 index 0000000..843427d --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/service/api/rest/EventmanagementRestService.java @@ -0,0 +1,86 @@ +package com.devonfw.application.jtqbackend.eventmanagement.service.api.rest; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.Eventmanagement; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventCto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventSearchCriteriaTo; + +/** + * The service interface for REST calls in order to execute the logic of component {@link Eventmanagement}. + */ +@Path("/eventmanagement/v1") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface EventmanagementRestService { + + /** + * Delegates to {@link Eventmanagement#findEvent}. + * + * @param id the ID of the {@link EventEto} + * @return the {@link EventEto} + */ + @GET + @Path("/event/{id}/") + public EventEto getEvent(@PathParam("id") long id); + + /** + * Delegates to {@link Eventmanagement#saveEvent}. + * + * @param event the {@link EventEto} to be saved + * @return the recently created {@link EventEto} + */ + @POST + @Path("/event/") + public EventEto saveEvent(EventEto event); + + /** + * Delegates to {@link Eventmanagement#deleteEvent}. + * + * @param id ID of the {@link EventEto} to be deleted + */ + @DELETE + @Path("/event/{id}/") + public void deleteEvent(@PathParam("id") long id); + + /** + * Delegates to {@link Eventmanagement#findEventEtos}. + * + * @param searchCriteriaTo the pagination and search criteria to be used for finding events. + * @return the {@link Page list} of matching {@link EventEto}s. + */ + @Path("/event/search") + @POST + public Page findEvents(EventSearchCriteriaTo searchCriteriaTo); + + /** + * Delegates to {@link Eventmanagement#findEventCto}. + * + * @param id the ID of the {@link EventCto} + * @return the {@link EventCto} + */ + @GET + @Path("/event/cto/{id}/") + public EventCto getEventCto(@PathParam("id") long id); + + /** + * Delegates to {@link Eventmanagement#findEventCtos}. + * + * @param searchCriteriaTo the pagination and search criteria to be used for finding events. + * @return the {@link Page list} of matching {@link EventCto}s. + */ + @Path("/event/cto/search") + @POST + public Page findEventCtos(EventSearchCriteriaTo searchCriteriaTo); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/general/common/api/ApplicationEntity.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/general/common/api/ApplicationEntity.java new file mode 100644 index 0000000..9e7ddec --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/general/common/api/ApplicationEntity.java @@ -0,0 +1,11 @@ +package com.devonfw.application.jtqbackend.general.common.api; + +import com.devonfw.module.basic.common.api.entity.GenericEntity; + +/** + * This is the abstract interface for a {@link GenericEntity} of this application. We are using {@link Long} for + * all {@link #getId() primary keys}. + */ +public abstract interface ApplicationEntity extends GenericEntity { + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/general/common/api/to/AbstractSearchCriteriaTo.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/general/common/api/to/AbstractSearchCriteriaTo.java new file mode 100644 index 0000000..0044734 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/general/common/api/to/AbstractSearchCriteriaTo.java @@ -0,0 +1,32 @@ +package com.devonfw.application.jtqbackend.general.common.api.to; + +import org.springframework.data.domain.Pageable; + +import com.devonfw.module.basic.common.api.to.AbstractTo; + +/** + * Abstract {@link AbstractTo TO} for search criteria. + */ +public abstract class AbstractSearchCriteriaTo extends AbstractTo { + + private static final long serialVersionUID = 1L; + + private Pageable pageable; + + /** + * @return the {@link Pageable} containing the optional pagination information or {@code null}. + */ + public Pageable getPageable() { + + return this.pageable; + } + + /** + * @param pageable new value of {@link #getPageable()}. + */ + public void setPageable(Pageable pageable) { + + this.pageable = pageable; + } + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/common/api/QueueDetail.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/common/api/QueueDetail.java new file mode 100644 index 0000000..9b06778 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/common/api/QueueDetail.java @@ -0,0 +1,97 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.common.api; + +import java.sql.Timestamp; + +import com.devonfw.application.jtqbackend.general.common.api.ApplicationEntity; + +public interface QueueDetail extends ApplicationEntity { + + /** + * @return queueNumberId + */ + + public String getQueueNumber(); + + /** + * @param queueNumber setter for queueNumber attribute + */ + + public void setQueueNumber(String queueNumber); + + /** + * @return creationTimeId + */ + + public Timestamp getCreationTime(); + + /** + * @param creationTime setter for creationTime attribute + */ + + public void setCreationTime(Timestamp creationTime); + + /** + * @return startTimeId + */ + + public Timestamp getStartTime(); + + /** + * @param startTime setter for startTime attribute + */ + + public void setStartTime(Timestamp startTime); + + /** + * @return endTimeId + */ + + public Timestamp getEndTime(); + + /** + * @param endTime setter for endTime attribute + */ + + public void setEndTime(Timestamp endTime); + + /** + * @return minEstimatedTimeId + */ + + public String getMinEstimatedTime(); + + /** + * @param minEstimatedTime setter for minEstimatedTime attribute + */ + + public void setMinEstimatedTime(String minEstimatedTime); + + /** + * getter for visitorId attribute + * + * @return visitorId + */ + + public Long getVisitorId(); + + /** + * @param visitor setter for visitor attribute + */ + + public void setVisitorId(Long visitorId); + + /** + * getter for EventId attribute + * + * @return EventId + */ + + public Long getEventId(); + + /** + * @param Event setter for Event attribute + */ + + public void setEventId(Long EventId); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/Queuedetailmanagement.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/Queuedetailmanagement.java new file mode 100644 index 0000000..19d769a --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/Queuedetailmanagement.java @@ -0,0 +1,11 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api; + +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.usecase.UcFindQueueDetail; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.usecase.UcManageQueueDetail; + +/** + * Interface for Queuedetailmanagement component. + */ +public interface Queuedetailmanagement extends UcFindQueueDetail, UcManageQueueDetail { + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailCto.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailCto.java new file mode 100644 index 0000000..caadda3 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailCto.java @@ -0,0 +1,50 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to; + +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; +import com.devonfw.module.basic.common.api.to.AbstractCto; + +/** + * Composite transport object of QueueDetail + */ +public class QueueDetailCto extends AbstractCto { + + private static final long serialVersionUID = 1L; + + private QueueDetailEto queueDetail; + + private VisitorEto visitor; + + private EventEto Event; + + public QueueDetailEto getQueueDetail() { + + return queueDetail; + } + + public void setQueueDetail(QueueDetailEto queueDetail) { + + this.queueDetail = queueDetail; + } + + public VisitorEto getVisitor() { + + return visitor; + } + + public void setVisitor(VisitorEto visitor) { + + this.visitor = visitor; + } + + public EventEto getEvent() { + + return Event; + } + + public void setEvent(EventEto Event) { + + this.Event = Event; + } + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailEto.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailEto.java new file mode 100644 index 0000000..783cf3d --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailEto.java @@ -0,0 +1,197 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to; + +import java.sql.Timestamp; + +import com.devonfw.application.jtqbackend.queuedetailmanagement.common.api.QueueDetail; +import com.devonfw.module.basic.common.api.to.AbstractEto; + +/** + * Entity transport object of QueueDetail + */ +public class QueueDetailEto extends AbstractEto implements QueueDetail { + + private static final long serialVersionUID = 1L; + + private String queueNumber; + + private Timestamp creationTime; + + private Timestamp startTime; + + private Timestamp endTime; + + private String minEstimatedTime; + + private Long visitorId; + + private Long EventId; + + @Override + public String getQueueNumber() { + + return this.queueNumber; + } + + @Override + public void setQueueNumber(String queueNumber) { + + this.queueNumber = queueNumber; + } + + @Override + public Timestamp getCreationTime() { + + return this.creationTime; + } + + @Override + public void setCreationTime(Timestamp creationTime) { + + this.creationTime = creationTime; + } + + @Override + public Timestamp getStartTime() { + + return this.startTime; + } + + @Override + public void setStartTime(Timestamp startTime) { + + this.startTime = startTime; + } + + @Override + public Timestamp getEndTime() { + + return this.endTime; + } + + @Override + public void setEndTime(Timestamp endTime) { + + this.endTime = endTime; + } + + @Override + public String getMinEstimatedTime() { + + return this.minEstimatedTime; + } + + @Override + public void setMinEstimatedTime(String minEstimatedTime) { + + this.minEstimatedTime = minEstimatedTime; + } + + @Override + public Long getVisitorId() { + + return this.visitorId; + } + + @Override + public void setVisitorId(Long visitorId) { + + this.visitorId = visitorId; + } + + @Override + public Long getEventId() { + + return this.EventId; + } + + @Override + public void setEventId(Long EventId) { + + this.EventId = EventId; + } + + @Override + public int hashCode() { + + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((this.queueNumber == null) ? 0 : this.queueNumber.hashCode()); + result = prime * result + ((this.creationTime == null) ? 0 : this.creationTime.hashCode()); + result = prime * result + ((this.startTime == null) ? 0 : this.startTime.hashCode()); + result = prime * result + ((this.endTime == null) ? 0 : this.endTime.hashCode()); + result = prime * result + ((this.minEstimatedTime == null) ? 0 : this.minEstimatedTime.hashCode()); + + result = prime * result + ((this.visitorId == null) ? 0 : this.visitorId.hashCode()); + + result = prime * result + ((this.EventId == null) ? 0 : this.EventId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + // class check will be done by super type EntityTo! + if (!super.equals(obj)) { + return false; + } + QueueDetailEto other = (QueueDetailEto) obj; + if (this.queueNumber == null) { + if (other.queueNumber != null) { + return false; + } + } else if (!this.queueNumber.equals(other.queueNumber)) { + return false; + } + if (this.creationTime == null) { + if (other.creationTime != null) { + return false; + } + } else if (!this.creationTime.equals(other.creationTime)) { + return false; + } + if (this.startTime == null) { + if (other.startTime != null) { + return false; + } + } else if (!this.startTime.equals(other.startTime)) { + return false; + } + if (this.endTime == null) { + if (other.endTime != null) { + return false; + } + } else if (!this.endTime.equals(other.endTime)) { + return false; + } + if (this.minEstimatedTime == null) { + if (other.minEstimatedTime != null) { + return false; + } + } else if (!this.minEstimatedTime.equals(other.minEstimatedTime)) { + return false; + } + + if (this.visitorId == null) { + if (other.visitorId != null) { + return false; + } + } else if (!this.visitorId.equals(other.visitorId)) { + return false; + } + + if (this.EventId == null) { + if (other.EventId != null) { + return false; + } + } else if (!this.EventId.equals(other.EventId)) { + return false; + } + return true; + } +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailSearchCriteriaTo.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailSearchCriteriaTo.java new file mode 100644 index 0000000..359c85f --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/to/QueueDetailSearchCriteriaTo.java @@ -0,0 +1,196 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to; + +import java.sql.Timestamp; + +import com.devonfw.application.jtqbackend.general.common.api.to.AbstractSearchCriteriaTo; +import com.devonfw.module.basic.common.api.query.StringSearchConfigTo; + +/** + * {@link SearchCriteriaTo} to find instances of + * {@link com.devonfw.application.jtqbackend.queuedetailmanagement.common.api.QueueDetail}s. + */ +public class QueueDetailSearchCriteriaTo extends AbstractSearchCriteriaTo { + + private static final long serialVersionUID = 1L; + + private String queueNumber; + + private Timestamp creationTime; + + private Timestamp startTime; + + private Timestamp endTime; + + private String minEstimatedTime; + + private Long visitorId; + + private Long EventId; + + private StringSearchConfigTo queueNumberOption; + + private StringSearchConfigTo minEstimatedTimeOption; + + /** + * @return queueNumberId + */ + + public String getQueueNumber() { + + return this.queueNumber; + } + + /** + * @param queueNumber setter for queueNumber attribute + */ + + public void setQueueNumber(String queueNumber) { + + this.queueNumber = queueNumber; + } + + /** + * @return creationTimeId + */ + + public Timestamp getCreationTime() { + + return this.creationTime; + } + + /** + * @param creationTime setter for creationTime attribute + */ + + public void setCreationTime(Timestamp creationTime) { + + this.creationTime = creationTime; + } + + /** + * @return startTimeId + */ + + public Timestamp getStartTime() { + + return this.startTime; + } + + /** + * @param startTime setter for startTime attribute + */ + + public void setStartTime(Timestamp startTime) { + + this.startTime = startTime; + } + + /** + * @return endTimeId + */ + + public Timestamp getEndTime() { + + return this.endTime; + } + + /** + * @param endTime setter for endTime attribute + */ + + public void setEndTime(Timestamp endTime) { + + this.endTime = endTime; + } + + /** + * @return minEstimatedTimeId + */ + + public String getMinEstimatedTime() { + + return this.minEstimatedTime; + } + + /** + * @param minEstimatedTime setter for minEstimatedTime attribute + */ + + public void setMinEstimatedTime(String minEstimatedTime) { + + this.minEstimatedTime = minEstimatedTime; + } + + /** + * getter for visitorId attribute + * + * @return visitorId + */ + + public Long getVisitorId() { + + return this.visitorId; + } + + /** + * @param visitor setter for visitor attribute + */ + + public void setVisitorId(Long visitorId) { + + this.visitorId = visitorId; + } + + /** + * getter for EventId attribute + * + * @return EventId + */ + + public Long getEventId() { + + return this.EventId; + } + + /** + * @param Event setter for Event attribute + */ + + public void setEventId(Long EventId) { + + this.EventId = EventId; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getQueueNumber() queueNumber}. + */ + public StringSearchConfigTo getQueueNumberOption() { + + return this.queueNumberOption; + } + + /** + * @param queueNumberOption new value of {@link #getQueueNumberOption()}. + */ + public void setQueueNumberOption(StringSearchConfigTo queueNumberOption) { + + this.queueNumberOption = queueNumberOption; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getMinEstimatedTime() minEstimatedTime}. + */ + public StringSearchConfigTo getMinEstimatedTimeOption() { + + return this.minEstimatedTimeOption; + } + + /** + * @param minEstimatedTimeOption new value of {@link #getMinEstimatedTimeOption()}. + */ + public void setMinEstimatedTimeOption(StringSearchConfigTo minEstimatedTimeOption) { + + this.minEstimatedTimeOption = minEstimatedTimeOption; + } + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/usecase/UcFindQueueDetail.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/usecase/UcFindQueueDetail.java new file mode 100644 index 0000000..2aff48d --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/usecase/UcFindQueueDetail.java @@ -0,0 +1,45 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.usecase; + +import java.util.List; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailCto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailSearchCriteriaTo; + +public interface UcFindQueueDetail { + + /** + * Returns a QueueDetail by its id 'id'. + * + * @param id The id 'id' of the QueueDetail. + * @return The {@link QueueDetailEto} with id 'id' + */ + QueueDetailEto findQueueDetail(long id); + + /** + * Returns a paginated list of QueueDetails matching the search criteria. + * + * @param criteria the {@link QueueDetailSearchCriteriaTo}. + * @return the {@link List} of matching {@link QueueDetailEto}s. + */ + Page findQueueDetails(QueueDetailSearchCriteriaTo criteria); + + /** + * Returns a composite QueueDetail by its id 'id'. + * + * @param id The id 'id' of the QueueDetail. + * @return The {@link QueueDetailCto} with id 'id' + */ + QueueDetailCto findQueueDetailCto(long id); + + /** + * Returns a paginated list of composite QueueDetails matching the search criteria. + * + * @param criteria the {@link QueueDetailSearchCriteriaTo}. + * @return the {@link List} of matching {@link QueueDetailCto}s. + */ + Page findQueueDetailCtos(QueueDetailSearchCriteriaTo criteria); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/usecase/UcManageQueueDetail.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/usecase/UcManageQueueDetail.java new file mode 100644 index 0000000..c005a0a --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/api/usecase/UcManageQueueDetail.java @@ -0,0 +1,28 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.usecase; + +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; + +/** + * Interface of UcManageQueueDetail to centralize documentation and signatures of methods. + */ +public interface UcManageQueueDetail { + + /** + * Deletes a queueDetail from the database by its id 'queueDetailId'. + * + * @param queueDetailId Id of the queueDetail to delete + * @return boolean true if the queueDetail can be deleted, false otherwise + */ + void deleteQueueDetail(long queueDetailId); + + /** + * Saves a queueDetail and store it in the database. + * + * @param queueDetail the {@link QueueDetailEto} to create. + * @return the new {@link QueueDetailEto} that has been saved with ID and version. + */ + QueueDetailEto saveQueueDetail(QueueDetailEto queueDetail); + + String getEstimatedTimeForVisitor(int visitorCount); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/service/api/rest/QueuedetailmanagementRestService.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/service/api/rest/QueuedetailmanagementRestService.java new file mode 100644 index 0000000..0030299 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/service/api/rest/QueuedetailmanagementRestService.java @@ -0,0 +1,86 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.service.api.rest; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.Queuedetailmanagement; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailCto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailSearchCriteriaTo; + +/** + * The service interface for REST calls in order to execute the logic of component {@link Queuedetailmanagement}. + */ +@Path("/queuedetailmanagement/v1") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface QueuedetailmanagementRestService { + + /** + * Delegates to {@link Queuedetailmanagement#findQueueDetail}. + * + * @param id the ID of the {@link QueueDetailEto} + * @return the {@link QueueDetailEto} + */ + @GET + @Path("/queuedetail/{id}/") + public QueueDetailEto getQueueDetail(@PathParam("id") long id); + + /** + * Delegates to {@link Queuedetailmanagement#saveQueueDetail}. + * + * @param queuedetail the {@link QueueDetailEto} to be saved + * @return the recently created {@link QueueDetailEto} + */ + @POST + @Path("/queuedetail/") + public QueueDetailEto saveQueueDetail(QueueDetailEto queuedetail); + + /** + * Delegates to {@link Queuedetailmanagement#deleteQueueDetail}. + * + * @param id ID of the {@link QueueDetailEto} to be deleted + */ + @DELETE + @Path("/queuedetail/{id}/") + public void deleteQueueDetail(@PathParam("id") long id); + + /** + * Delegates to {@link Queuedetailmanagement#findQueueDetailEtos}. + * + * @param searchCriteriaTo the pagination and search criteria to be used for finding queuedetails. + * @return the {@link Page list} of matching {@link QueueDetailEto}s. + */ + @Path("/queuedetail/search") + @POST + public Page findQueueDetails(QueueDetailSearchCriteriaTo searchCriteriaTo); + + /** + * Delegates to {@link Queuedetailmanagement#findQueueDetailCto}. + * + * @param id the ID of the {@link QueueDetailCto} + * @return the {@link QueueDetailCto} + */ + @GET + @Path("/queuedetail/cto/{id}/") + public QueueDetailCto getQueueDetailCto(@PathParam("id") long id); + + /** + * Delegates to {@link Queuedetailmanagement#findQueueDetailCtos}. + * + * @param searchCriteriaTo the pagination and search criteria to be used for finding queuedetails. + * @return the {@link Page list} of matching {@link QueueDetailCto}s. + */ + @Path("/queuedetail/cto/search") + @POST + public Page findQueueDetailCtos(QueueDetailSearchCriteriaTo searchCriteriaTo); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/common/api/Visitor.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/common/api/Visitor.java new file mode 100644 index 0000000..81f3b82 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/common/api/Visitor.java @@ -0,0 +1,91 @@ +package com.devonfw.application.jtqbackend.visitormanagement.common.api; + +import com.devonfw.application.jtqbackend.general.common.api.ApplicationEntity; + +public interface Visitor extends ApplicationEntity { + + /** + * @return usernameId + */ + + public String getUsername(); + + /** + * @param username setter for username attribute + */ + + public void setUsername(String username); + + /** + * @return nameId + */ + + public String getName(); + + /** + * @param name setter for name attribute + */ + + public void setName(String name); + + /** + * @return phoneNumberId + */ + + public String getPhoneNumber(); + + /** + * @param phoneNumber setter for phoneNumber attribute + */ + + public void setPhoneNumber(String phoneNumber); + + /** + * @return passwordId + */ + + public String getPassword(); + + /** + * @param password setter for password attribute + */ + + public void setPassword(String password); + + /** + * @return acceptedCommercialId + */ + + public Boolean getAcceptedCommercial(); + + /** + * @param acceptedCommercial setter for acceptedCommercial attribute + */ + + public void setAcceptedCommercial(Boolean acceptedCommercial); + + /** + * @return acceptedTermsId + */ + + public Boolean getAcceptedTerms(); + + /** + * @param acceptedTerms setter for acceptedTerms attribute + */ + + public void setAcceptedTerms(Boolean acceptedTerms); + + /** + * @return userTypeId + */ + + public Boolean getUserType(); + + /** + * @param userType setter for userType attribute + */ + + public void setUserType(Boolean userType); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/Visitormanagement.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/Visitormanagement.java new file mode 100644 index 0000000..82b84e7 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/Visitormanagement.java @@ -0,0 +1,11 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.api; + +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.usecase.UcFindVisitor; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.usecase.UcManageVisitor; + +/** + * Interface for Visitormanagement component. + */ +public interface Visitormanagement extends UcFindVisitor, UcManageVisitor { + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorCto.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorCto.java new file mode 100644 index 0000000..6cec68b --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorCto.java @@ -0,0 +1,24 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.api.to; + +import com.devonfw.module.basic.common.api.to.AbstractCto; + +/** + * Composite transport object of Visitor + */ +public class VisitorCto extends AbstractCto { + + private static final long serialVersionUID = 1L; + + private VisitorEto visitor; + + public VisitorEto getVisitor() { + + return visitor; + } + + public void setVisitor(VisitorEto visitor) { + + this.visitor = visitor; + } + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorEto.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorEto.java new file mode 100644 index 0000000..7e1b37a --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorEto.java @@ -0,0 +1,191 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.api.to; + +import com.devonfw.application.jtqbackend.visitormanagement.common.api.Visitor; +import com.devonfw.module.basic.common.api.to.AbstractEto; + +/** + * Entity transport object of Visitor + */ +public class VisitorEto extends AbstractEto implements Visitor { + + private static final long serialVersionUID = 1L; + + private String username; + + private String name; + + private String phoneNumber; + + private String password; + + private Boolean acceptedCommercial; + + private Boolean acceptedTerms; + + private Boolean userType; + + @Override + public String getUsername() { + + return username; + } + + @Override + public void setUsername(String username) { + + this.username = username; + } + + @Override + public String getName() { + + return name; + } + + @Override + public void setName(String name) { + + this.name = name; + } + + @Override + public String getPhoneNumber() { + + return phoneNumber; + } + + @Override + public void setPhoneNumber(String phoneNumber) { + + this.phoneNumber = phoneNumber; + } + + @Override + public String getPassword() { + + return password; + } + + @Override + public void setPassword(String password) { + + this.password = password; + } + + @Override + public Boolean getAcceptedCommercial() { + + return acceptedCommercial; + } + + @Override + public void setAcceptedCommercial(Boolean acceptedCommercial) { + + this.acceptedCommercial = acceptedCommercial; + } + + @Override + public Boolean getAcceptedTerms() { + + return acceptedTerms; + } + + @Override + public void setAcceptedTerms(Boolean acceptedTerms) { + + this.acceptedTerms = acceptedTerms; + } + + @Override + public Boolean getUserType() { + + return userType; + } + + @Override + public void setUserType(Boolean userType) { + + this.userType = userType; + } + + @Override + public int hashCode() { + + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((this.username == null) ? 0 : this.username.hashCode()); + result = prime * result + ((this.name == null) ? 0 : this.name.hashCode()); + result = prime * result + ((this.phoneNumber == null) ? 0 : this.phoneNumber.hashCode()); + result = prime * result + ((this.password == null) ? 0 : this.password.hashCode()); + result = prime * result + ((this.acceptedCommercial == null) ? 0 : this.acceptedCommercial.hashCode()); + result = prime * result + ((this.acceptedTerms == null) ? 0 : this.acceptedTerms.hashCode()); + result = prime * result + ((this.userType == null) ? 0 : this.userType.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + // class check will be done by super type EntityTo! + if (!super.equals(obj)) { + return false; + } + VisitorEto other = (VisitorEto) obj; + if (this.username == null) { + if (other.username != null) { + return false; + } + } else if (!this.username.equals(other.username)) { + return false; + } + if (this.name == null) { + if (other.name != null) { + return false; + } + } else if (!this.name.equals(other.name)) { + return false; + } + if (this.phoneNumber == null) { + if (other.phoneNumber != null) { + return false; + } + } else if (!this.phoneNumber.equals(other.phoneNumber)) { + return false; + } + if (this.password == null) { + if (other.password != null) { + return false; + } + } else if (!this.password.equals(other.password)) { + return false; + } + if (this.acceptedCommercial == null) { + if (other.acceptedCommercial != null) { + return false; + } + } else if (!this.acceptedCommercial.equals(other.acceptedCommercial)) { + return false; + } + if (this.acceptedTerms == null) { + if (other.acceptedTerms != null) { + return false; + } + } else if (!this.acceptedTerms.equals(other.acceptedTerms)) { + return false; + } + if (this.userType == null) { + if (other.userType != null) { + return false; + } + } else if (!this.userType.equals(other.userType)) { + return false; + } + return true; + } +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorSearchCriteriaTo.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorSearchCriteriaTo.java new file mode 100644 index 0000000..e02c99d --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/to/VisitorSearchCriteriaTo.java @@ -0,0 +1,226 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.api.to; + +import com.devonfw.application.jtqbackend.general.common.api.to.AbstractSearchCriteriaTo; +import com.devonfw.module.basic.common.api.query.StringSearchConfigTo; + +/** + * {@link SearchCriteriaTo} to find instances of + * {@link com.devonfw.application.jtqbackend.visitormanagement.common.api.Visitor}s. + */ +public class VisitorSearchCriteriaTo extends AbstractSearchCriteriaTo { + + private static final long serialVersionUID = 1L; + + private String username; + + private String name; + + private String phoneNumber; + + private String password; + + private Boolean acceptedCommercial; + + private Boolean acceptedTerms; + + private Boolean userType; + + private StringSearchConfigTo usernameOption; + + private StringSearchConfigTo nameOption; + + private StringSearchConfigTo phoneNumberOption; + + private StringSearchConfigTo passwordOption; + + /** + * @return usernameId + */ + + public String getUsername() { + + return username; + } + + /** + * @param username setter for username attribute + */ + + public void setUsername(String username) { + + this.username = username; + } + + /** + * @return nameId + */ + + public String getName() { + + return name; + } + + /** + * @param name setter for name attribute + */ + + public void setName(String name) { + + this.name = name; + } + + /** + * @return phoneNumberId + */ + + public String getPhoneNumber() { + + return phoneNumber; + } + + /** + * @param phoneNumber setter for phoneNumber attribute + */ + + public void setPhoneNumber(String phoneNumber) { + + this.phoneNumber = phoneNumber; + } + + /** + * @return passwordId + */ + + public String getPassword() { + + return password; + } + + /** + * @param password setter for password attribute + */ + + public void setPassword(String password) { + + this.password = password; + } + + /** + * @return acceptedCommercialId + */ + + public Boolean getAcceptedCommercial() { + + return acceptedCommercial; + } + + /** + * @param acceptedCommercial setter for acceptedCommercial attribute + */ + + public void setAcceptedCommercial(Boolean acceptedCommercial) { + + this.acceptedCommercial = acceptedCommercial; + } + + /** + * @return acceptedTermsId + */ + + public Boolean getAcceptedTerms() { + + return acceptedTerms; + } + + /** + * @param acceptedTerms setter for acceptedTerms attribute + */ + + public void setAcceptedTerms(Boolean acceptedTerms) { + + this.acceptedTerms = acceptedTerms; + } + + /** + * @return userTypeId + */ + + public Boolean getUserType() { + + return userType; + } + + /** + * @param userType setter for userType attribute + */ + + public void setUserType(Boolean userType) { + + this.userType = userType; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getUsername() username}. + */ + public StringSearchConfigTo getUsernameOption() { + + return this.usernameOption; + } + + /** + * @param usernameOption new value of {@link #getUsernameOption()}. + */ + public void setUsernameOption(StringSearchConfigTo usernameOption) { + + this.usernameOption = usernameOption; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getName() name}. + */ + public StringSearchConfigTo getNameOption() { + + return this.nameOption; + } + + /** + * @param nameOption new value of {@link #getNameOption()}. + */ + public void setNameOption(StringSearchConfigTo nameOption) { + + this.nameOption = nameOption; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getPhoneNumber() phoneNumber}. + */ + public StringSearchConfigTo getPhoneNumberOption() { + + return this.phoneNumberOption; + } + + /** + * @param phoneNumberOption new value of {@link #getPhoneNumberOption()}. + */ + public void setPhoneNumberOption(StringSearchConfigTo phoneNumberOption) { + + this.phoneNumberOption = phoneNumberOption; + } + + /** + * @return the {@link StringSearchConfigTo} used to search for {@link #getPassword() password}. + */ + public StringSearchConfigTo getPasswordOption() { + + return this.passwordOption; + } + + /** + * @param passwordOption new value of {@link #getPasswordOption()}. + */ + public void setPasswordOption(StringSearchConfigTo passwordOption) { + + this.passwordOption = passwordOption; + } + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/usecase/UcFindVisitor.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/usecase/UcFindVisitor.java new file mode 100644 index 0000000..24ffd67 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/usecase/UcFindVisitor.java @@ -0,0 +1,45 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.api.usecase; + +import java.util.List; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorCto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorSearchCriteriaTo; + +public interface UcFindVisitor { + + /** + * Returns a Visitor by its id 'id'. + * + * @param id The id 'id' of the Visitor. + * @return The {@link VisitorEto} with id 'id' + */ + VisitorEto findVisitor(long id); + + /** + * Returns a paginated list of Visitors matching the search criteria. + * + * @param criteria the {@link VisitorSearchCriteriaTo}. + * @return the {@link List} of matching {@link VisitorEto}s. + */ + Page findVisitors(VisitorSearchCriteriaTo criteria); + + /** + * Returns a composite Visitor by its id 'id'. + * + * @param id The id 'id' of the Visitor. + * @return The {@link VisitorCto} with id 'id' + */ + VisitorCto findVisitorCto(long id); + + /** + * Returns a paginated list of composite Visitors matching the search criteria. + * + * @param criteria the {@link VisitorSearchCriteriaTo}. + * @return the {@link List} of matching {@link VisitorCto}s. + */ + Page findVisitorCtos(VisitorSearchCriteriaTo criteria); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/usecase/UcManageVisitor.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/usecase/UcManageVisitor.java new file mode 100644 index 0000000..6eb75fa --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/api/usecase/UcManageVisitor.java @@ -0,0 +1,26 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.api.usecase; + +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; + +/** + * Interface of UcManageVisitor to centralize documentation and signatures of methods. + */ +public interface UcManageVisitor { + + /** + * Deletes a visitor from the database by its id 'visitorId'. + * + * @param visitorId Id of the visitor to delete + * @return boolean true if the visitor can be deleted, false otherwise + */ + boolean deleteVisitor(long visitorId); + + /** + * Saves a visitor and store it in the database. + * + * @param visitor the {@link VisitorEto} to create. + * @return the new {@link VisitorEto} that has been saved with ID and version. + */ + VisitorEto saveVisitor(VisitorEto visitor); + +} diff --git a/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/service/api/rest/VisitormanagementRestService.java b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/service/api/rest/VisitormanagementRestService.java new file mode 100644 index 0000000..9f31656 --- /dev/null +++ b/backend/api/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/service/api/rest/VisitormanagementRestService.java @@ -0,0 +1,86 @@ +package com.devonfw.application.jtqbackend.visitormanagement.service.api.rest; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.Visitormanagement; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorCto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorSearchCriteriaTo; + +/** + * The service interface for REST calls in order to execute the logic of component {@link Visitormanagement}. + */ +@Path("/visitormanagement/v1") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface VisitormanagementRestService { + + /** + * Delegates to {@link Visitormanagement#findVisitor}. + * + * @param id the ID of the {@link VisitorEto} + * @return the {@link VisitorEto} + */ + @GET + @Path("/visitor/{id}/") + public VisitorEto getVisitor(@PathParam("id") long id); + + /** + * Delegates to {@link Visitormanagement#saveVisitor}. + * + * @param visitor the {@link VisitorEto} to be saved + * @return the recently created {@link VisitorEto} + */ + @POST + @Path("/visitor/") + public VisitorEto saveVisitor(VisitorEto visitor); + + /** + * Delegates to {@link Visitormanagement#deleteVisitor}. + * + * @param id ID of the {@link VisitorEto} to be deleted + */ + @DELETE + @Path("/visitor/{id}/") + public void deleteVisitor(@PathParam("id") long id); + + /** + * Delegates to {@link Visitormanagement#findVisitorEtos}. + * + * @param searchCriteriaTo the pagination and search criteria to be used for finding visitors. + * @return the {@link Page list} of matching {@link VisitorEto}s. + */ + @Path("/visitor/search") + @POST + public Page findVisitors(VisitorSearchCriteriaTo searchCriteriaTo); + + /** + * Delegates to {@link Visitormanagement#findVisitorCto}. + * + * @param id the ID of the {@link VisitorCto} + * @return the {@link VisitorCto} + */ + @GET + @Path("/visitor/cto/{id}/") + public VisitorCto getVisitorCto(@PathParam("id") long id); + + /** + * Delegates to {@link Visitormanagement#findVisitorCtos}. + * + * @param searchCriteriaTo the pagination and search criteria to be used for finding visitors. + * @return the {@link Page list} of matching {@link VisitorCto}s. + */ + @Path("/visitor/cto/search") + @POST + public Page findVisitorCtos(VisitorSearchCriteriaTo searchCriteriaTo); + +} diff --git a/backend/api/src/test/java/com/devonfw/application/jtqbackend/ToTest.java b/backend/api/src/test/java/com/devonfw/application/jtqbackend/ToTest.java new file mode 100644 index 0000000..2a7ead7 --- /dev/null +++ b/backend/api/src/test/java/com/devonfw/application/jtqbackend/ToTest.java @@ -0,0 +1,323 @@ +package com.devonfw.application.jtqbackend; + +import java.io.Serializable; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.sql.Timestamp; +import java.time.Instant; +import java.time.Year; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +import org.assertj.core.api.SoftAssertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; +import org.springframework.core.type.filter.AssignableTypeFilter; +import org.springframework.util.ReflectionUtils; + +import com.devonfw.module.basic.common.api.reference.IdRef; +import com.devonfw.module.basic.common.api.reflect.Devon4jPackage; +import com.devonfw.module.basic.common.api.to.AbstractTo; +import com.devonfw.module.test.common.base.ModuleTest; + +import nl.jqno.equalsverifier.EqualsVerifier; +import nl.jqno.equalsverifier.EqualsVerifierApi; +import nl.jqno.equalsverifier.Warning; + +public class ToTest extends ModuleTest { + + private static final ToExclusions EXCLUSIONS = new ToExclusions(); + + static { + // EXCLUSIONS.add(MyBusinessEto.class).ignoreEquals().ignoreProperties("foo", "bar"); + } + + /** + * Finds all {@link AbstractTo Transportobjekte} of this app via reflection and tests all getters/setters as well as equals and hashCode. + */ + @Test + public void testTos() { + + List> toClasses = getToClasses(); + SoftAssertions assertion = new SoftAssertions(); + for (Class toClass : toClasses) { + ToExclusion exclusion = EXCLUSIONS.get(toClass.getName()); + testGetSet(toClass, assertion, exclusion); + testEqualsAndHashcode(toClass, assertion, exclusion); + } + assertion.assertAll(); + } + + /** + * Checks if a certain class has a custom equals method + * @param clazz class to be checked + * @return boolean value if the class to be checked has a custom equals() + * method or not + */ + private boolean hasCustomEquals(Class clazz) { + + try { + clazz.getDeclaredMethod("equals", new Class[] {}); + } catch (NoSuchMethodException noCustomEquals) { + return false; + } + + return true; + } + + /** + * Checks if a certain class has a custom hashCode method + * + * @param clazz class to be checked + * @return boolean value if the class to be checked has a custom hashCode() + * method or not + */ + private boolean hasCustomHashCode(Class clazz) { + + try { + clazz.getDeclaredMethod("hashCode", new Class[] { Object.class }); + } catch (NoSuchMethodException noCustomHashCode) { + return false; + } + + return true; + } + + private void testEqualsAndHashcode(Class clazz, SoftAssertions assertion, ToExclusion exclusion) { + + if(!hasCustomEquals(clazz) && !hasCustomHashCode(clazz)) { + return; + } + + if ((exclusion != null) && (exclusion.ignoreEquals)) { + return; + } + EqualsVerifierApi verifier = EqualsVerifier.forClass(clazz).withRedefinedSuperclass().usingGetClass().suppress(Warning.NONFINAL_FIELDS, Warning.INHERITED_DIRECTLY_FROM_OBJECT); + try { + verifier.verify(); + } catch (AssertionError e) { + assertion.fail(e.getMessage(), e); + } + } + + private void testGetSet(Class clazz, SoftAssertions assertion, ToExclusion exclusion) { + + if (!Modifier.isAbstract(clazz.getModifiers())) { + ReflectionUtils.doWithLocalFields(clazz, field -> { + try { + if (isCheckable(clazz, field, exclusion)) { + Object testInstance = clazz.newInstance(); + Method getMethod = null; + Method setMethod = null; + + if (Boolean.class.equals(field.getType()) || boolean.class.equals(field.getType())) { + getMethod = findMethod("is", clazz, field); + if (getMethod == null) { + getMethod = findMethod("get", clazz, field); + } + } else { + getMethod = findMethod("get", clazz, field); + } + setMethod = findMethod("set", clazz, field); + + if (getMethod == null) { + assertion.fail("Getter of field " + clazz.getSimpleName() + "." + field.getName() + " has not been found."); + } else if (setMethod == null) { + assertion.fail("Setter of field " + clazz.getSimpleName() + "." + field.getName() + " has not been found."); + } else { + getMethod.setAccessible(true); + setMethod.setAccessible(true); + + Object value = createTestObject(field); + setMethod.invoke(testInstance, value); + Object value2 = getMethod.invoke(testInstance); + assertion.assertThat(value2).as("Value from getter of field " + clazz.getSimpleName() + "." + field.getName()).isEqualTo(value); + } + } + } catch (Exception e) { + assertion.fail("Error with getter/setter of field " + clazz.getSimpleName() + "." + field.getName() + ": " + + e.getClass().getSimpleName() + ": " + e.getMessage(), e); + } + }); + } + } + + private boolean isCheckable(Class clazz, Field field, ToExclusion exclusion) { + + if (field.getName().startsWith("$") || Modifier.isFinal(field.getModifiers())) { + return false; + } + if (Optional.class.isAssignableFrom(field.getType())) { + return false; + } + if (Modifier.isTransient(field.getModifiers())) { + return false; + } + if ((exclusion != null) && (exclusion.properties.contains(field.getName()))) { + return false; + } + return true; + } + + private Object createTestObject(Field field) throws InstantiationException, IllegalAccessException { + + Class type = field.getType(); + return createInstance(type); + } + + private Object createInstance(Class type) throws InstantiationException, IllegalAccessException { + + Object o = null; + if (type.isEnum()) { + o = type.getEnumConstants()[0]; + } else if (List.class.isAssignableFrom(type)) { + o = new ArrayList<>(); + } else if (Set.class.isAssignableFrom(type)) { + o = new HashSet<>(); + } else if (Map.class.isAssignableFrom(type)) { + o = new HashMap<>(); + } else if (Integer.class.isAssignableFrom(type) || int.class.isAssignableFrom(type)) { + o = Integer.valueOf(1); + } else if (Long.class.isAssignableFrom(type) || long.class.isAssignableFrom(type)) { + o = Long.valueOf(2); + } else if (Boolean.class.isAssignableFrom(type) || boolean.class.isAssignableFrom(type)) { + o = Boolean.TRUE; + } else if (String.class.isAssignableFrom(type)) { + o = "hello world"; + } else if (Year.class.isAssignableFrom(type)) { + o = Year.of(1999); + } else if (Instant.class.isAssignableFrom(type)) { + o = Instant.now(); + } else if (Timestamp.class.isAssignableFrom(type)) { + o = Timestamp.from(Instant.now()); + } else if (type == byte[].class) { + o = "test".getBytes(); + } else if (Serializable.class.equals(type)) { + o = Integer.valueOf(1); + } else if (type == BigDecimal.class) { + o = BigDecimal.ZERO; + } else if (type == BigInteger.class) { + o = BigInteger.ZERO; + } else if (type == Integer.class) { + o = Integer.valueOf(0); + } else if ((type == Long.class) || (type == Number.class)) { + o = Long.valueOf(0); + } else if (type == Double.class) { + o = Double.valueOf(0); + } else if (type == IdRef.class) { + o = IdRef.of(0); + } + return o; + } + + private static Method findMethod(String prefix, Class clazz, Field field) { + + String methodname = prefix + field.getName(); + + return Arrays.asList(ReflectionUtils.getAllDeclaredMethods(clazz)).stream() + .filter(m -> m.getName().equalsIgnoreCase(methodname)).findFirst().orElse(null); + } + + private List> getToClasses() { + + ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); + provider.addIncludeFilter(new AssignableTypeFilter(AbstractTo.class)); + + Devon4jPackage pkg = Devon4jPackage.of(ToTest.class); + Set toSet = provider.findCandidateComponents(pkg.getRoot()); + List> toList = new ArrayList<>(toSet.size()); + for (BeanDefinition beanDefinition : toSet) { + String className = beanDefinition.getBeanClassName(); + try { + Class toClass = Class.forName(className); + toList.add(toClass); + } catch (ClassNotFoundException e) { + fail("Class " + className + " could not been found."); + } + } + return toList; + } + + public static class ToExclusions { + + private final Map exclusions; + + public ToExclusions() { + + super(); + this.exclusions = new HashMap<>(); + } + + public ToExclusion add(Class toClass) { + + return add(toClass.getName()); + } + + public ToExclusion add(String toClassQualifiedName) { + + ToExclusion exclusion = new ToExclusion(); + ToExclusion duplicate = this.exclusions.put(toClassQualifiedName, exclusion); + if (duplicate != null) { + throw new IllegalStateException("Doppelte ToExclusion von " + toClassQualifiedName); + } + return exclusion; + } + + public ToExclusion get(String toClassQualifiedName) { + + return this.exclusions.get(toClassQualifiedName); + } + + } + + public static class ToExclusion { + + private Set properties; + + private boolean ignoreEquals; + + public ToExclusion() { + + super(); + this.properties = new HashSet<>(); + this.ignoreEquals = false; + } + + /** + * Ignores the given properties for testing of getters/setters. + * + * @return this + */ + public ToExclusion ignoreProperties(String... props) { + + if (this.properties == null) { + this.properties = new HashSet<>(); + } + for (String property : props) { + this.properties.add(property); + } + return this; + } + + /** + * Ignores this transfer-object for testing of equals and hashCode with {@link EqualsVerifier}. + * + * @return this + */ + public ToExclusion ignoreEquals() { + + this.ignoreEquals = true; + return this; + } + } +} \ No newline at end of file diff --git a/backend/core/pom.xml b/backend/core/pom.xml new file mode 100644 index 0000000..9854493 --- /dev/null +++ b/backend/core/pom.xml @@ -0,0 +1,217 @@ + + + 4.0.0 + + com.devonfw.java.jtqbackend + jtqbackend + 0.0.1 + + jtqbackend-core + jar + ${project.artifactId} + Core of the server for the jtqbackend application - a simple example based on devon4j. + + + + ${project.groupId} + jtqbackend-api + ${project.version} + + + + + com.devonfw.java.modules + devon4j-beanmapping-orika + + + + + com.devonfw.java.modules + devon4j-security + + + + com.devonfw.java.modules + devon4j-web + + + + + com.devonfw.java.starters + devon4j-starter-cxf-client-rest + + + + com.devonfw.java.starters + devon4j-starter-cxf-client-ws + + + + + com.devonfw.java.starters + devon4j-starter-cxf-server-rest + + + + com.devonfw.java.starters + devon4j-starter-cxf-server-ws + + + + + com.devonfw.java.starters + devon4j-starter-spring-data-jpa + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + + + javax.persistence + javax.persistence-api + + + + + org.hibernate + hibernate-entitymanager + + + + + com.querydsl + querydsl-jpa + + + com.querydsl + querydsl-apt + provided + + + + + org.hibernate.validator + hibernate-validator + + + + + javax.servlet + javax.servlet-api + provided + + + + + javax.el + javax.el-api + + + + + org.springframework + spring-webmvc + + + + + com.h2database + h2 + + + + + org.flywaydb + flyway-core + + + + + org.apache.cxf + cxf-rt-rs-service-description + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + org.springframework + spring-aop + + + + + cglib + cglib + + + + + net.logstash.logback + logstash-logback-encoder + + + + + com.devonfw.java.modules + devon4j-test-jpa + test + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + org.springframework.boot + spring-boot-starter-validation + + + + + + + + embedded + + true + + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + config/application.properties + + + + + + + \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/SpringBootApp.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/SpringBootApp.java new file mode 100644 index 0000000..815f021 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/SpringBootApp.java @@ -0,0 +1,29 @@ +package com.devonfw.application.jtqbackend; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; + +import com.devonfw.module.jpa.dataaccess.api.AdvancedRevisionEntity; +import com.devonfw.module.jpa.dataaccess.impl.data.GenericRepositoryFactoryBean; + +/** + * Main entry point of this {@link SpringBootApplication}. Simply run this class to start this app. + */ +@SpringBootApplication +@EnableJpaRepositories(repositoryFactoryBeanClass = GenericRepositoryFactoryBean.class) +@EnableGlobalMethodSecurity(jsr250Enabled = true) +public class SpringBootApp { + + /** + * Entry point for spring-boot based app + * + * @param args - arguments + */ + public static void main(String[] args) { + + SpringApplication.run(SpringBootApp.class, args); + } +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/dataaccess/api/EventEntity.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/dataaccess/api/EventEntity.java new file mode 100644 index 0000000..b75f620 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/dataaccess/api/EventEntity.java @@ -0,0 +1,168 @@ +package com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api; + +import java.sql.Timestamp; + +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import com.devonfw.application.jtqbackend.eventmanagement.common.api.Event; +import com.devonfw.application.jtqbackend.general.dataaccess.api.ApplicationPersistenceEntity; + +/** + * @author azhussai + */ +@Entity +@Table(name = "Event") +public class EventEntity extends ApplicationPersistenceEntity implements Event { + + private String eventName; + + @Temporal(TemporalType.TIMESTAMP) + private Timestamp startDate; + + @Temporal(TemporalType.TIMESTAMP) + private Timestamp endDate; + + private String location; + + private String description; + + private String logo; + + private String attentionTime; + + private int visitorCount; + + private static final long serialVersionUID = 1L; + + /** + * @return eventName + */ + public String getEventName() { + + return this.eventName; + } + + /** + * @param eventName new value of {@link #geteventName}. + */ + public void setEventName(String eventName) { + + this.eventName = eventName; + } + + /** + * @return startDate + */ + public Timestamp getStartDate() { + + return this.startDate; + } + + /** + * @param startDate new value of {@link #getstartDate}. + */ + public void setStartDate(Timestamp startDate) { + + this.startDate = startDate; + } + + /** + * @return endDate + */ + public Timestamp getEndDate() { + + return this.endDate; + } + + /** + * @param endDate new value of {@link #getendDate}. + */ + public void setEndDate(Timestamp endDate) { + + this.endDate = endDate; + } + + /** + * @return location + */ + public String getLocation() { + + return this.location; + } + + /** + * @param location new value of {@link #getlocation}. + */ + public void setLocation(String location) { + + this.location = location; + } + + /** + * @return description + */ + public String getDescription() { + + return this.description; + } + + /** + * @param description new value of {@link #getdescription}. + */ + public void setDescription(String description) { + + this.description = description; + } + + /** + * @return logo + */ + public String getLogo() { + + return this.logo; + } + + /** + * @param logo new value of {@link #getlogo}. + */ + public void setLogo(String logo) { + + this.logo = logo; + } + + /** + * @return attentionTime + */ + public String getAttentionTime() { + + return this.attentionTime; + } + + /** + * @param attentionTime new value of {@link #getattentionTime}. + */ + public void setAttentionTime(String attentionTime) { + + this.attentionTime = attentionTime; + } + + /** + * @return visitorCount + */ + public int getVisitorCount() { + + return this.visitorCount; + } + + /** + * @param visitorCount new value of {@link #getvisitorCount}. + */ + public void setVisitorCount(int visitorCount) { + + this.visitorCount = visitorCount; + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/dataaccess/api/repo/EventRepository.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/dataaccess/api/repo/EventRepository.java new file mode 100644 index 0000000..2b37f43 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/dataaccess/api/repo/EventRepository.java @@ -0,0 +1,152 @@ +package com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.repo; + +import static com.querydsl.core.alias.Alias.$; + +import java.sql.Timestamp; +import java.util.Iterator; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Sort.Order; + +import com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.EventEntity; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventSearchCriteriaTo; +import com.devonfw.module.jpa.dataaccess.api.QueryUtil; +import com.devonfw.module.jpa.dataaccess.api.data.DefaultRepository; +import com.querydsl.jpa.impl.JPAQuery; + +/** + * {@link DefaultRepository} for {@link EventEntity} + */ +public interface EventRepository extends DefaultRepository { + + /** + * @param criteria the {@link EventSearchCriteriaTo} with the criteria to search. + * @return the {@link Page} of the {@link EventEntity} objects that matched the search. If no pageable is set, it will + * return a unique page with all the objects that matched the search. + */ + default Page findByCriteria(EventSearchCriteriaTo criteria) { + + EventEntity alias = newDslAlias(); + JPAQuery query = newDslQuery(alias); + + String eventName = criteria.getEventName(); + if (eventName != null && !eventName.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getEventName()), eventName, criteria.getEventNameOption()); + } + Timestamp startDate = criteria.getStartDate(); + if (startDate != null) { + query.where($(alias.getStartDate()).eq(startDate)); + } + Timestamp endDate = criteria.getEndDate(); + if (endDate != null) { + query.where($(alias.getEndDate()).eq(endDate)); + } + String location = criteria.getLocation(); + if (location != null && !location.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getLocation()), location, criteria.getLocationOption()); + } + String description = criteria.getDescription(); + if (description != null && !description.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getDescription()), description, criteria.getDescriptionOption()); + } + String logo = criteria.getLogo(); + if (logo != null && !logo.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getLogo()), logo, criteria.getLogoOption()); + } + String attentionTime = criteria.getAttentionTime(); + if (attentionTime != null && !attentionTime.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getAttentionTime()), attentionTime, criteria.getAttentionTimeOption()); + } + Integer visitorCount = criteria.getVisitorCount(); + if (visitorCount != null) { + query.where($(alias.getVisitorCount()).eq(visitorCount)); + } + if (criteria.getPageable() == null) { + criteria.setPageable(PageRequest.of(0, Integer.MAX_VALUE)); + } else { + addOrderBy(query, alias, criteria.getPageable().getSort()); + } + + return QueryUtil.get().findPaginated(criteria.getPageable(), query, true); + } + + /** + * Add sorting to the given query on the given alias + * + * @param query to add sorting to + * @param alias to retrieve columns from for sorting + * @param sort specification of sorting + */ + public default void addOrderBy(JPAQuery query, EventEntity alias, Sort sort) { + + if (sort != null && sort.isSorted()) { + Iterator it = sort.iterator(); + while (it.hasNext()) { + Order next = it.next(); + switch (next.getProperty()) { + case "eventName": + if (next.isAscending()) { + query.orderBy($(alias.getEventName()).asc()); + } else { + query.orderBy($(alias.getEventName()).desc()); + } + break; + case "startDate": + if (next.isAscending()) { + query.orderBy($(alias.getStartDate()).asc()); + } else { + query.orderBy($(alias.getStartDate()).desc()); + } + break; + case "endDate": + if (next.isAscending()) { + query.orderBy($(alias.getEndDate()).asc()); + } else { + query.orderBy($(alias.getEndDate()).desc()); + } + break; + case "location": + if (next.isAscending()) { + query.orderBy($(alias.getLocation()).asc()); + } else { + query.orderBy($(alias.getLocation()).desc()); + } + break; + case "description": + if (next.isAscending()) { + query.orderBy($(alias.getDescription()).asc()); + } else { + query.orderBy($(alias.getDescription()).desc()); + } + break; + case "logo": + if (next.isAscending()) { + query.orderBy($(alias.getLogo()).asc()); + } else { + query.orderBy($(alias.getLogo()).desc()); + } + break; + case "attentionTime": + if (next.isAscending()) { + query.orderBy($(alias.getAttentionTime()).asc()); + } else { + query.orderBy($(alias.getAttentionTime()).desc()); + } + break; + case "visitorCount": + if (next.isAscending()) { + query.orderBy($(alias.getVisitorCount()).asc()); + } else { + query.orderBy($(alias.getVisitorCount()).desc()); + } + break; + default: + throw new IllegalArgumentException("Sorted by the unknown property '" + next.getProperty() + "'"); + } + } + } + } + +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/base/usecase/AbstractEventUc.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/base/usecase/AbstractEventUc.java new file mode 100644 index 0000000..1493c02 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/base/usecase/AbstractEventUc.java @@ -0,0 +1,27 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.base.usecase; + +import javax.inject.Inject; + +import com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.repo.EventRepository; +import com.devonfw.application.jtqbackend.general.logic.base.AbstractUc; + +/** + * Abstract use case for Events, which provides access to the commonly necessary data access objects. + */ +public class AbstractEventUc extends AbstractUc { + + /** @see #getEventRepository() */ + @Inject + private EventRepository eventRepository; + + /** + * Returns the field 'eventRepository'. + * + * @return the {@link EventRepository} instance. + */ + public EventRepository getEventRepository() { + + return this.eventRepository; + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/EventmanagementImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/EventmanagementImpl.java new file mode 100644 index 0000000..a6380ac --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/EventmanagementImpl.java @@ -0,0 +1,78 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.impl; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.Eventmanagement; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventCto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventSearchCriteriaTo; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.usecase.UcFindEvent; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.usecase.UcManageEvent; +import com.devonfw.application.jtqbackend.general.logic.base.AbstractComponentFacade; + +/** + * Implementation of component interface of eventmanagement + */ +@Named +public class EventmanagementImpl extends AbstractComponentFacade implements Eventmanagement { + + @Inject + private UcFindEvent ucFindEvent; + + @Inject + private UcManageEvent ucManageEvent; + + @Override + public EventEto findEvent(long id) { + + return this.ucFindEvent.findEvent(id); + } + + @Override + public Page findEvents(EventSearchCriteriaTo criteria) { + + return this.ucFindEvent.findEvents(criteria); + } + + @Override + public EventEto saveEvent(EventEto event) { + + return this.ucManageEvent.saveEvent(event); + } + + @Override + public boolean deleteEvent(long id) { + + return this.ucManageEvent.deleteEvent(id); + } + + @Override + public EventCto findEventCto(long id) { + + return this.ucFindEvent.findEventCto(id); + } + + @Override + public Page findEventCtos(EventSearchCriteriaTo criteria) { + + return this.ucFindEvent.findEventCtos(criteria); + } + + @Override + public void decreaseEventVisitorCount(long eventId) { + + this.ucManageEvent.decreaseEventVisitorCount(eventId); + + } + + @Override + public void increaseEventVisitorCount(long eventId) { + + this.ucManageEvent.increaseEventVisitorCount(eventId); + + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/usecase/UcFindEventImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/usecase/UcFindEventImpl.java new file mode 100644 index 0000000..0fe6a79 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/usecase/UcFindEventImpl.java @@ -0,0 +1,82 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.impl.usecase; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import javax.inject.Named; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.EventEntity; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventCto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventSearchCriteriaTo; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.usecase.UcFindEvent; +import com.devonfw.application.jtqbackend.eventmanagement.logic.base.usecase.AbstractEventUc; + +/** + * Use case implementation for searching, filtering and getting Events + */ +@Named +@Validated +@Transactional +public class UcFindEventImpl extends AbstractEventUc implements UcFindEvent { + + /** + * Logger instance. + */ + private static final Logger LOG = LoggerFactory.getLogger(UcFindEventImpl.class); + + @Override + public EventEto findEvent(long id) { + + LOG.debug("Get Event with id {} from database.", id); + Optional foundEntity = getEventRepository().findById(id); + if (foundEntity.isPresent()) + return getBeanMapper().map(foundEntity.get(), EventEto.class); + else + return null; + } + + @Override + public Page findEvents(EventSearchCriteriaTo criteria) { + + Page events = getEventRepository().findByCriteria(criteria); + return mapPaginatedEntityList(events, EventEto.class); + } + + @Override + public EventCto findEventCto(long id) { + + LOG.debug("Get EventCto with id {} from database.", id); + EventEntity entity = getEventRepository().find(id); + EventCto cto = new EventCto(); + cto.setEvent(getBeanMapper().map(entity, EventEto.class)); + + return cto; + } + + @Override + public Page findEventCtos(EventSearchCriteriaTo criteria) { + + Page events = getEventRepository().findByCriteria(criteria); + List ctos = new ArrayList<>(); + for (EventEntity entity : events.getContent()) { + EventCto cto = new EventCto(); + cto.setEvent(getBeanMapper().map(entity, EventEto.class)); + ctos.add(cto); + } + Pageable pagResultTo = PageRequest.of(criteria.getPageable().getPageNumber(), criteria.getPageable().getPageSize()); + + return new PageImpl<>(ctos, pagResultTo, events.getTotalElements()); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/usecase/UcManageEventImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/usecase/UcManageEventImpl.java new file mode 100644 index 0000000..e80441a --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/logic/impl/usecase/UcManageEventImpl.java @@ -0,0 +1,80 @@ +package com.devonfw.application.jtqbackend.eventmanagement.logic.impl.usecase; + +import java.util.Objects; + +import javax.inject.Named; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.EventEntity; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.usecase.UcManageEvent; +import com.devonfw.application.jtqbackend.eventmanagement.logic.base.usecase.AbstractEventUc; + +/** + * Use case implementation for modifying and deleting Events + */ +@Named +@Validated +@Transactional +public class UcManageEventImpl extends AbstractEventUc implements UcManageEvent { + + /** Logger instance. */ + private static final Logger LOG = LoggerFactory.getLogger(UcManageEventImpl.class); + + @Override + public boolean deleteEvent(long eventId) { + + EventEntity event = getEventRepository().find(eventId); + getEventRepository().delete(event); + LOG.debug("The event with id '{}' has been deleted.", eventId); + return true; + } + + @Override + public EventEto saveEvent(EventEto event) { + + Objects.requireNonNull(event, "event"); + + EventEntity eventEntity = getBeanMapper().map(event, EventEntity.class); + + // initialize, validate eventEntity here if necessary + EventEntity resultEntity = getEventRepository().save(eventEntity); + LOG.debug("Event with id '{}' has been created.", resultEntity.getId()); + return getBeanMapper().map(resultEntity, EventEto.class); + } + + @Override + public void decreaseEventVisitorCount(long eventId) { + + // the event is found using find method of eventRepository and eventId + EventEntity eventEntity = getEventRepository().find(eventId); + + // visitor count is reduced by 1. + eventEntity.setVisitorCount(eventEntity.getVisitorCount() - 1); + + // Based on Hibernate, the command save(Entity) is not strictly required, but it improves readability. + // the eventEntity gets saved + getEventRepository().save(eventEntity); + + } + + @Override + public void increaseEventVisitorCount(long eventId) { + + // the event is found using find method of eventRepository and eventId + EventEntity eventEntity = getEventRepository().find(eventId); + + // visitor count is increased by 1. + eventEntity.setVisitorCount(eventEntity.getVisitorCount() + 1); + + // Based on Hibernate, the command save(Entity) is not strictly required, but it improves readability. + // the eventEntity gets saved + getEventRepository().save(eventEntity); + + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/service/impl/rest/EventmanagementRestServiceImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/service/impl/rest/EventmanagementRestServiceImpl.java new file mode 100644 index 0000000..96d39d1 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/eventmanagement/service/impl/rest/EventmanagementRestServiceImpl.java @@ -0,0 +1,59 @@ +package com.devonfw.application.jtqbackend.eventmanagement.service.impl.rest; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.Eventmanagement; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventCto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventSearchCriteriaTo; +import com.devonfw.application.jtqbackend.eventmanagement.service.api.rest.EventmanagementRestService; + +/** + * The service implementation for REST calls in order to execute the logic of component {@link Eventmanagement}. + */ +@Named("EventmanagementRestService") +public class EventmanagementRestServiceImpl implements EventmanagementRestService { + + @Inject + private Eventmanagement eventmanagement; + + @Override + public EventEto getEvent(long id) { + + return this.eventmanagement.findEvent(id); + } + + @Override + public EventEto saveEvent(EventEto event) { + + return this.eventmanagement.saveEvent(event); + } + + @Override + public void deleteEvent(long id) { + + this.eventmanagement.deleteEvent(id); + } + + @Override + public Page findEvents(EventSearchCriteriaTo searchCriteriaTo) { + + return this.eventmanagement.findEvents(searchCriteriaTo); + } + + @Override + public EventCto getEventCto(long id) { + + return this.eventmanagement.findEventCto(id); + } + + @Override + public Page findEventCtos(EventSearchCriteriaTo searchCriteriaTo) { + + return this.eventmanagement.findEventCtos(searchCriteriaTo); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/ApplicationEntity.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/ApplicationEntity.java new file mode 100644 index 0000000..a7aa7a3 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/ApplicationEntity.java @@ -0,0 +1,11 @@ +package com.devonfw.application.jtqbackend.general.common.api; + +import com.devonfw.module.basic.common.api.entity.GenericEntity; + +/** + * This is the abstract interface for a {@link GenericEntity}. We are using {@link Long} for all {@link #getId() primary + * keys}. + */ +public abstract interface ApplicationEntity extends GenericEntity { + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/security/ApplicationAccessControlConfig.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/security/ApplicationAccessControlConfig.java new file mode 100644 index 0000000..11a559a --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/security/ApplicationAccessControlConfig.java @@ -0,0 +1,32 @@ +package com.devonfw.application.jtqbackend.general.common.api.security; + +import javax.inject.Named; + +import com.devonfw.module.security.common.api.accesscontrol.AccessControlGroup; +import com.devonfw.module.security.common.base.accesscontrol.AccessControlConfig; + +/** + * Example of {@link AccessControlConfig} that used for testing. + */ +@Named +public class ApplicationAccessControlConfig extends AccessControlConfig { + + public static final String APP_ID = "jtqbackend"; + + private static final String PREFIX = APP_ID + "."; + + public static final String GROUP_READ_MASTER_DATA = PREFIX + "ReadMasterData"; + + public static final String GROUP_ADMIN = PREFIX + "Admin"; + + /** + * The constructor. + */ + public ApplicationAccessControlConfig() { + + super(); + AccessControlGroup readMasterData = group(GROUP_READ_MASTER_DATA); + group(GROUP_ADMIN, readMasterData); + } + +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/validation/EmailExtended.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/validation/EmailExtended.java new file mode 100644 index 0000000..242a3f2 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/validation/EmailExtended.java @@ -0,0 +1,26 @@ +package com.devonfw.application.jtqbackend.general.common.api.validation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import javax.validation.Constraint; +import javax.validation.Payload; +import javax.validation.constraints.Email; +import javax.validation.constraints.Pattern; + +@Email +@Pattern(regexp = "^([\\w]*[\\w\\.]*(?!\\.)@([a-zA-Z]+)([\\.])([a-zA-Z]+))", message = "Email must specify a domain") +@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = {}) +@Documented +public @interface EmailExtended { + String message() default "Please provide a valid email address"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/validation/Phone.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/validation/Phone.java new file mode 100644 index 0000000..729d38e --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/api/validation/Phone.java @@ -0,0 +1,28 @@ +package com.devonfw.application.jtqbackend.general.common.api.validation; + +/** + * @author azhussai + * + */ +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import javax.validation.Constraint; +import javax.validation.Payload; +import javax.validation.constraints.Pattern; + +@Pattern(regexp = "[ 0-9]{0,14}$", message = "Phone must be valid") +@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = {}) +@Documented +public @interface Phone { + String message() default "Phone must be well formed"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/base/AbstractBeanMapperSupport.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/base/AbstractBeanMapperSupport.java new file mode 100644 index 0000000..0f1a762 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/base/AbstractBeanMapperSupport.java @@ -0,0 +1,31 @@ +package com.devonfw.application.jtqbackend.general.common.base; + +import com.devonfw.module.beanmapping.common.api.BeanMapper; + +import javax.inject.Inject; + +/** + * This abstract class provides {@link #getBeanMapper() access} to the {@link BeanMapper}. + */ +public abstract class AbstractBeanMapperSupport { + + private BeanMapper beanMapper; + + /** + * @param beanMapper is the {@link BeanMapper} to {@link Inject} + */ + @Inject + public void setBeanMapper(BeanMapper beanMapper) { + + this.beanMapper = beanMapper; + } + + /** + * @return the {@link BeanMapper} instance. + */ + protected BeanMapper getBeanMapper() { + + return this.beanMapper; + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/ApplicationObjectMapperFactory.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/ApplicationObjectMapperFactory.java new file mode 100644 index 0000000..78f8ee5 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/ApplicationObjectMapperFactory.java @@ -0,0 +1,51 @@ +package com.devonfw.application.jtqbackend.general.common.impl.config; + +import javax.inject.Named; + +import org.springframework.security.web.csrf.CsrfToken; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.devonfw.module.json.common.base.ObjectMapperFactory; + + +/** + * The MappingFactory class to resolve polymorphic conflicts within the jtqbackend application. + */ +@Named("ApplicationObjectMapperFactory") +public class ApplicationObjectMapperFactory extends ObjectMapperFactory { + + /** + * The constructor. + */ + public ApplicationObjectMapperFactory() { + + super(); + // see https://github.com/devonfw/devon4j/blob/develop/documentation/guide-json.asciidoc#json-and-inheritance + SimpleModule module = getExtensionModule(); + module.addAbstractTypeMapping(CsrfToken.class, CsrfTokenImpl.class); + } + + /** + * override createInstance method. + */ + @Override + public ObjectMapper createInstance() { + + ObjectMapper objectMapper = super.createInstance(); + // omit properties in JSON that are null + objectMapper.setSerializationInclusion(Include.NON_NULL); + // Write legacy date/calendar as readable text instead of numeric value + // See + // https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/SerializationFeature.html#WRITE_DATES_AS_TIMESTAMPS + objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + // ignore unknown properties in JSON to prevent errors + // e.g. when the service has been updated/extended but the calling REST client is not yet updated + // see https://github.com/devonfw/devon4j/blob/develop/documentation/guide-service-layer.asciidoc#versioning + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + return objectMapper; + } +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/BeansOrikaConfig.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/BeansOrikaConfig.java new file mode 100644 index 0000000..31d7237 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/BeansOrikaConfig.java @@ -0,0 +1,14 @@ +package com.devonfw.application.jtqbackend.general.common.impl.config; + +import org.springframework.context.annotation.Configuration; + +import com.devonfw.module.beanmapping.common.base.BaseOrikaConfig; + +/** + * Java bean configuration for Orika. The method {@link #configureCustomMapping(MapperFactory)} from + * {@link BaseOrikaConfig} can be overridden as per requirements. + */ +@Configuration +public class BeansOrikaConfig extends BaseOrikaConfig { + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/CsrfTokenImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/CsrfTokenImpl.java new file mode 100644 index 0000000..bf3a3a9 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/config/CsrfTokenImpl.java @@ -0,0 +1,60 @@ +package com.devonfw.application.jtqbackend.general.common.impl.config; + +import org.springframework.security.web.csrf.CsrfToken; + +/** + * Implementation of {@link CsrfToken} as Java bean for JSON deserialization. + */ +public class CsrfTokenImpl implements CsrfToken { + + private static final long serialVersionUID = 1L; + + private String headerName; + + private String parameterName; + + private String token; + + @Override + public String getHeaderName() { + + return this.headerName; + } + + @Override + public String getParameterName() { + + return this.parameterName; + } + + @Override + public String getToken() { + + return this.token; + } + + /** + * @param headerName new value of {@link #getHeaderName()}. + */ + public void setHeaderName(String headerName) { + + this.headerName = headerName; + } + + /** + * @param parameterName new value of {@link #getParameterName()}. + */ + public void setParameterName(String parameterName) { + + this.parameterName = parameterName; + } + + /** + * @param token new value of {@link #getToken()}. + */ + public void setToken(String token) { + + this.token = token; + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/security/BaseUserDetailsService.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/security/BaseUserDetailsService.java new file mode 100644 index 0000000..ade77e3 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/security/BaseUserDetailsService.java @@ -0,0 +1,123 @@ +package com.devonfw.application.jtqbackend.general.common.impl.security; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +import com.devonfw.module.security.common.api.accesscontrol.AccessControl; +import com.devonfw.module.security.common.api.accesscontrol.AccessControlProvider; +import com.devonfw.module.security.common.base.accesscontrol.AccessControlGrantedAuthority; + +/** + * Custom implementation of {@link UserDetailsService}.
+ * + * @see com.devonfw.application.jtqbackend.general.service.impl.config.BaseWebSecurityConfig + */ +@Named +public class BaseUserDetailsService implements UserDetailsService { + + /** Logger instance. */ + private static final Logger LOG = LoggerFactory.getLogger(BaseUserDetailsService.class); + + private AuthenticationManagerBuilder amBuilder; + + private AccessControlProvider accessControlProvider; + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + + Set authorities = getAuthorities(username); + UserDetails user; + try { + user = getAmBuilder().getDefaultUserDetailsService().loadUserByUsername(username); + User userData = new User(user.getUsername(), user.getPassword(), authorities); + return userData; + } catch (Exception e) { + e.printStackTrace(); + UsernameNotFoundException exception = new UsernameNotFoundException("Authentication failed.", e); + LOG.warn("Failed to get user {}.", username, exception); + throw exception; + } + } + + /** + * @param username the login of the user + * @return the associated {@link GrantedAuthority}s + * @throws AuthenticationException if no principal is retrievable for the given {@code username} + */ + protected Set getAuthorities(String username) throws AuthenticationException { + + Objects.requireNonNull(username, "username"); + // determine granted authorities for spring-security... + Set authorities = new HashSet<>(); + Collection accessControlIds = getRoles(username); + Set accessControlSet = new HashSet<>(); + for (String id : accessControlIds) { + boolean success = this.accessControlProvider.collectAccessControls(id, accessControlSet); + if (!success) { + LOG.warn("Undefined access control {}.", id); + } + } + for (AccessControl accessControl : accessControlSet) { + authorities.add(new AccessControlGrantedAuthority(accessControl)); + } + return authorities; + } + + private Collection getRoles(String username) { + + Collection roles = new ArrayList<>(); + // TODO for a reasonable application you need to retrieve the roles of the user from a central IAM system + roles.add(username); + return roles; + } + + /** + * @return amBuilder + */ + public AuthenticationManagerBuilder getAmBuilder() { + + return this.amBuilder; + } + + /** + * @param amBuilder new value of {@link #getAmBuilder}. + */ + @Inject + public void setAmBuilder(AuthenticationManagerBuilder amBuilder) { + + this.amBuilder = amBuilder; + } + + /** + * @return accessControlProvider + */ + public AccessControlProvider getAccessControlProvider() { + + return this.accessControlProvider; + } + + /** + * @param accessControlProvider new value of {@link #getAccessControlProvider}. + */ + @Inject + public void setAccessControlProvider(AccessControlProvider accessControlProvider) { + + this.accessControlProvider = accessControlProvider; + } +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/security/CsrfRequestMatcher.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/security/CsrfRequestMatcher.java new file mode 100644 index 0000000..9401b08 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/common/impl/security/CsrfRequestMatcher.java @@ -0,0 +1,54 @@ +package com.devonfw.application.jtqbackend.general.common.impl.security; + +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.security.web.util.matcher.RequestMatcher; + +/** + * This is the implementation of {@link RequestMatcher}, which decides which {@link HttpServletRequest Requests} require + * a correct CSRF token. + * + * @see Cross-site request forgery + */ +public class CsrfRequestMatcher implements RequestMatcher { + + private static final Pattern HTTP_METHOD_PATTERN = Pattern.compile("^GET$"); + + private static final String[] PATH_PREFIXES_WITHOUT_CSRF_PROTECTION = + { "/login", "/logout", "/services/rest/login", "/websocket" }; + + @Override + public boolean matches(HttpServletRequest request) { + + // GET requests are read-only and therefore do not need CSRF protection + if (HTTP_METHOD_PATTERN.matcher(request.getMethod()).matches()) { + + return false; + } + + // There are specific URLs which can not be protected from CSRF. For example, in case of the the login page, + // the CSRF token can only be accessed after a successful authentication ("login"). + String requestPath = getRequestPath(request); + for (String path : PATH_PREFIXES_WITHOUT_CSRF_PROTECTION) { + if (requestPath.startsWith(path)) { + return false; + } + } + + return true; + } + + private String getRequestPath(HttpServletRequest request) { + + String url = request.getServletPath(); + String pathInfo = request.getPathInfo(); + + if (pathInfo != null) { + url += pathInfo; + } + + return url; + } +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/dataaccess/api/ApplicationPersistenceEntity.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/dataaccess/api/ApplicationPersistenceEntity.java new file mode 100644 index 0000000..1f4470e --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/dataaccess/api/ApplicationPersistenceEntity.java @@ -0,0 +1,86 @@ +package com.devonfw.application.jtqbackend.general.dataaccess.api; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import javax.persistence.Transient; +import javax.persistence.Version; + +import com.devonfw.application.jtqbackend.general.common.api.ApplicationEntity; +import com.devonfw.module.basic.common.api.entity.PersistenceEntity; + +/** + * Abstract base class for all {@link PersistenceEntity persistence entities} with an {@link #getId() id} and a + * {@link #getModificationCounter() modificationCounter} (version) field. All persistence entities of this application + * should inherit from this class. It is using JPA annotations at the getters what has several advantages but also + * implies that you have to annotate transient getter methods with the {@link Transient} annotation. + */ +@MappedSuperclass +public abstract class ApplicationPersistenceEntity implements ApplicationEntity, PersistenceEntity { + + private static final long serialVersionUID = 1L; + + private Long id; + + private int modificationCounter; + + /** + * The constructor. + */ + public ApplicationPersistenceEntity() { + + super(); + } + + @Override + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + public Long getId() { + + return this.id; + } + + @Override + public void setId(Long id) { + + this.id = id; + } + + @Override + @Version + public int getModificationCounter() { + + return this.modificationCounter; + } + + @Override + public void setModificationCounter(int version) { + + this.modificationCounter = version; + } + + @Override + public String toString() { + + StringBuilder buffer = new StringBuilder(); + toString(buffer); + return buffer.toString(); + } + + /** + * Method to extend {@link #toString()} logic. + * + * @param buffer is the {@link StringBuilder} where to {@link StringBuilder#append(Object) append} the string + * representation. + */ + protected void toString(StringBuilder buffer) { + + buffer.append(getClass().getSimpleName()); + if (this.id != null) { + buffer.append("[id="); + buffer.append(this.id); + buffer.append("]"); + } + } +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/dataaccess/impl/JpaConfig.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/dataaccess/impl/JpaConfig.java new file mode 100644 index 0000000..a3d06f5 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/dataaccess/impl/JpaConfig.java @@ -0,0 +1,27 @@ +package com.devonfw.application.jtqbackend.general.dataaccess.impl; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; + +import com.devonfw.module.basic.common.api.config.SpringProfileConstants; +import com.devonfw.module.jpa.dataaccess.api.JpaInitializer; + +/** + * Spring {@link Configuration} for JPA. + */ +@Configuration +@Profile(SpringProfileConstants.NOT_JUNIT) +public class JpaConfig { + + /** + * @return the {@link JpaInitializer} to register the {@link javax.persistence.EntityManager} and make + * {@link com.devonfw.module.jpa.dataaccess.api.JpaHelper} functional. + */ + @Bean + public JpaInitializer jpaInitializer() { + + return new JpaInitializer(); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractComponentFacade.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractComponentFacade.java new file mode 100644 index 0000000..5baf7d4 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractComponentFacade.java @@ -0,0 +1,16 @@ +package com.devonfw.application.jtqbackend.general.logic.base; + +/** + * Abstract base class for any component implementation class in this application. + */ +public abstract class AbstractComponentFacade extends AbstractLogic { + + /** + * The constructor. + */ + public AbstractComponentFacade() { + + super(); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractLogic.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractLogic.java new file mode 100644 index 0000000..5386e66 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractLogic.java @@ -0,0 +1,127 @@ +package com.devonfw.application.jtqbackend.general.logic.base; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; + +import com.devonfw.application.jtqbackend.general.common.base.AbstractBeanMapperSupport; +import com.devonfw.module.basic.common.api.entity.GenericEntity; +import com.devonfw.module.basic.common.api.entity.PersistenceEntity; +import com.devonfw.module.basic.common.api.to.AbstractEto; +import com.devonfw.module.basic.common.api.to.MasterCto; + +/** + * Abstract base class for implementations of business logic in this application. Actual implementations need + * to be annotated with {@link javax.inject.Named}. + * + * @see AbstractUc + * @see AbstractComponentFacade + */ +public abstract class AbstractLogic extends AbstractBeanMapperSupport { + + /** + * The constructor. + */ + public AbstractLogic() { + + super(); + } + + /** + * Creates a {@link Map} with all {@link MasterCto}s from the given {@link Collection} using their + * {@link MasterCto#getEto() main ETO} {@link AbstractEto#getId() ID} as key. All {@link AbstractEto ETO}s being + * {@code null} or without an {@link AbstractEto#getId() ID} will be ignored. + * + * @param is the generic type of the {@link MasterCto}s. + * @param entities is the {@link Collection} of {@link MasterCto}s. + * @return a {@link Map} mapping from {@link AbstractEto#getId() ID} to {@link MasterCto}. + */ + protected static > Map getCtoMap(Collection ctos) { + + Map id2CtoMap = new HashMap<>(); + for (C cto : ctos) { + AbstractEto eto = cto.getEto(); + if (eto != null) { + Long id = eto.getId(); + if (id != null) { + id2CtoMap.put(id, cto); + } + } + } + return id2CtoMap; + } + + /** + * Creates a {@link Map} with all {@link GenericEntity entities} from the given {@link Collection} using their + * {@link GenericEntity#getId() ID} as key. All {@link GenericEntity entities} without an {@link GenericEntity#getId() + * ID} ({@code null}) will be ignored. + * + * @param is the generic type of the {@link GenericEntity#getId() ID}. + * @param is the generic type of the {@link GenericEntity entity}. + * @param entities is the {@link Collection} of {@link GenericEntity entities}. + * @return a {@link Map} mapping from {@link GenericEntity#getId() ID} to {@link GenericEntity entity}. + */ + protected static > Map getEntityMap(Collection entities) { + + Map id2EntityMap = new HashMap<>(); + for (E entity : entities) { + ID id = entity.getId(); + if (id != null) { + id2EntityMap.put(id, entity); + } + } + return id2EntityMap; + } + + /** + * Determines the {@link GenericEntity entities} to delete if currentList is the current list from the + * persistence and listToSave is the new list that shall be saved. In other words this method selects the + * {@link GenericEntity entities} from currentList that are not contained in listToSave. + * + * @param is the generic type of the {@link GenericEntity#getId() ID}. + * @param is the generic type of the {@link GenericEntity entity}. + * @param currentEntities is the {@link Collection} of the {@link GenericEntity entities} currently persisted. We + * assume that all objects in this list have an {@link GenericEntity#getId() ID} value (that is not + * {@code null}). + * @param entitiesToSave is the {@link Collection} that contains the {@link GenericEntity entities} that shall be + * saved. It may contain {@link GenericEntity entities} that have no {@link GenericEntity#getId() ID} that + * shall be newly created. + * @return the {@link List} with the {@link GenericEntity entities} to delete. + */ + protected static > List getEntities2Delete(Collection currentEntities, + Collection entitiesToSave) { + + List result = new ArrayList<>(currentEntities.size()); + Map entityMap = getEntityMap(entitiesToSave); + for (E entity : currentEntities) { + if (!entityMap.containsKey(entity.getId())) { + // entity from currentList is not contained in listToSave... + result.add(entity); + } + } + return result; + } + + /** + * Maps a {@link Page paginated list} of persistent entities to a {@link Page paginated list} of transfer objects. + * + * @param is the generic type of the {@link AbstractTransferObject transfer object}. + * @param is the generic type of the {@link PersistenceEntity entity}. + * @param page is the paginated list to map from. + * @param clazz is the target class to map the paginated entities to. + * @return a {@link Page paginated list of entity transfer objects}. + */ + protected > Page mapPaginatedEntityList(Page page, + Class clazz) { + + List etoList = getBeanMapper().mapList(page.getContent(), clazz); + return new PageImpl<>(etoList, page.getPageable(), page.getTotalElements()); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractUc.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractUc.java new file mode 100644 index 0000000..d6599ae --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/base/AbstractUc.java @@ -0,0 +1,18 @@ +package com.devonfw.application.jtqbackend.general.logic.base; + +/** + * Abstract base class for any use case in this application. Actual implementations need to be annotated with + * {@link javax.inject.Named}. + * + */ +public abstract class AbstractUc extends AbstractLogic { + + /** + * The constructor. + */ + public AbstractUc() { + + super(); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/impl/config/DefaultRolesPrefixPostProcessor.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/impl/config/DefaultRolesPrefixPostProcessor.java new file mode 100644 index 0000000..46c30ef --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/logic/impl/config/DefaultRolesPrefixPostProcessor.java @@ -0,0 +1,61 @@ +package com.devonfw.application.jtqbackend.general.logic.impl.config; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.core.PriorityOrdered; +import org.springframework.security.access.annotation.Jsr250MethodSecurityMetadataSource; +import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler; +import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler; +import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter; + +/** + * This is an implementation of {@link BeanPostProcessor} that allows to change the role prefix of spring-security. By + * default spring-security is magically adding a strange prefix called "ROLE_" to your granted authorities. In order to + * prevent this we use this class with an empty prefix. + */ +public class DefaultRolesPrefixPostProcessor implements BeanPostProcessor, PriorityOrdered { + + private final String rolePrefix; + + /** + * Der Konstruktor. + * + * @param rolePrefix das gewünschte Rollen-Präfix (z.B. der leere String). + */ + public DefaultRolesPrefixPostProcessor(String rolePrefix) { + super(); + this.rolePrefix = rolePrefix; + } + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + + // remove this if you are not using JSR-250 + if (bean instanceof Jsr250MethodSecurityMetadataSource) { + ((Jsr250MethodSecurityMetadataSource) bean).setDefaultRolePrefix(this.rolePrefix); + } + + if (bean instanceof DefaultMethodSecurityExpressionHandler) { + ((DefaultMethodSecurityExpressionHandler) bean).setDefaultRolePrefix(this.rolePrefix); + } + if (bean instanceof DefaultWebSecurityExpressionHandler) { + ((DefaultWebSecurityExpressionHandler) bean).setDefaultRolePrefix(this.rolePrefix); + } + if (bean instanceof SecurityContextHolderAwareRequestFilter) { + ((SecurityContextHolderAwareRequestFilter) bean).setRolePrefix(this.rolePrefix); + } + return bean; + } + + @Override + public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { + + return bean; + } + + @Override + public int getOrder() { + + return PriorityOrdered.HIGHEST_PRECEDENCE; + } +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/BaseWebSecurityConfig.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/BaseWebSecurityConfig.java new file mode 100644 index 0000000..27d87ab --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/BaseWebSecurityConfig.java @@ -0,0 +1,121 @@ +package com.devonfw.application.jtqbackend.general.service.impl.config; + +import javax.inject.Inject; +import javax.servlet.Filter; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler; +import org.springframework.security.web.authentication.logout.LogoutFilter; +import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler; +import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; +import org.springframework.security.web.csrf.CsrfFilter; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; + +import com.devonfw.module.security.common.impl.rest.AuthenticationSuccessHandlerSendingOkHttpStatusCode; +import com.devonfw.module.security.common.impl.rest.JsonUsernamePasswordAuthenticationFilter; +import com.devonfw.module.security.common.impl.rest.LogoutSuccessHandlerReturningOkHttpStatusCode; + +/** + * This type serves as a base class for extensions of the {@code WebSecurityConfigurerAdapter} and provides a default + * configuration.
+ * Security configuration is based on {@link WebSecurityConfigurerAdapter}. This configuration is by purpose designed + * most simple for two channels of authentication: simple login form and rest-url. + */ +public abstract class BaseWebSecurityConfig extends WebSecurityConfigurerAdapter { + + @Value("${security.cors.enabled}") + boolean corsEnabled = false; + + @Inject + private UserDetailsService userDetailsService; + + @Inject + private PasswordEncoder passwordEncoder; + + private CorsFilter getCorsFilter() { + + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + CorsConfiguration config = new CorsConfiguration(); + config.setAllowCredentials(true); + config.addAllowedOrigin("*"); + config.addAllowedHeader("*"); + config.addAllowedMethod("OPTIONS"); + config.addAllowedMethod("HEAD"); + config.addAllowedMethod("GET"); + config.addAllowedMethod("PUT"); + config.addAllowedMethod("POST"); + config.addAllowedMethod("DELETE"); + config.addAllowedMethod("PATCH"); + source.registerCorsConfiguration("/**", config); + return new CorsFilter(source); + } + + /** + * Configure spring security to enable a simple webform-login + a simple rest login. + */ + @Override + public void configure(HttpSecurity http) throws Exception { + + http.authorizeRequests().anyRequest().permitAll().and().csrf().disable() + .addFilterAfter(getSimpleRestAuthenticationFilter(), BasicAuthenticationFilter.class) + .addFilterAfter(getSimpleRestLogoutFilter(), LogoutFilter.class); + if (this.corsEnabled) { + http.addFilterBefore(getCorsFilter(), CsrfFilter.class); + } + } + + /** + * Create a simple filter that allows logout on a REST Url /services/rest/logout and returns a simple HTTP status 200 + * ok. + * + * @return the filter. + */ + protected Filter getSimpleRestLogoutFilter() { + + LogoutFilter logoutFilter = new LogoutFilter(new LogoutSuccessHandlerReturningOkHttpStatusCode(), + new SecurityContextLogoutHandler()); + + // configure logout for rest logouts + logoutFilter.setLogoutRequestMatcher(new AntPathRequestMatcher("/services/rest/logout")); + + return logoutFilter; + } + + /** + * Create a simple authentication filter for REST logins that reads user-credentials from a json-parameter and returns + * status 200 instead of redirect after login. + * + * @return the {@link JsonUsernamePasswordAuthenticationFilter}. + * @throws Exception if something goes wrong. + */ + protected JsonUsernamePasswordAuthenticationFilter getSimpleRestAuthenticationFilter() throws Exception { + + JsonUsernamePasswordAuthenticationFilter jsonFilter = new JsonUsernamePasswordAuthenticationFilter( + new AntPathRequestMatcher("/services/rest/login")); + jsonFilter.setPasswordParameter("j_password"); + jsonFilter.setUsernameParameter("j_username"); + jsonFilter.setAuthenticationManager(authenticationManager()); + // set failurehandler that uses no redirect in case of login failure; just HTTP-status: 401 + jsonFilter.setAuthenticationManager(authenticationManagerBean()); + jsonFilter.setAuthenticationFailureHandler(new SimpleUrlAuthenticationFailureHandler()); + // set successhandler that uses no redirect in case of login success; just HTTP-status: 200 + jsonFilter.setAuthenticationSuccessHandler(new AuthenticationSuccessHandlerSendingOkHttpStatusCode()); + return jsonFilter; + } + + @SuppressWarnings("javadoc") + @Inject + public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { + + auth.inMemoryAuthentication().withUser("admin").password(this.passwordEncoder.encode("admin")).roles("Admin"); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/ServletInitializer.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/ServletInitializer.java new file mode 100644 index 0000000..38affaa --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/ServletInitializer.java @@ -0,0 +1,23 @@ +package com.devonfw.application.jtqbackend.general.service.impl.config; + +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.context.annotation.Configuration; + +import com.devonfw.application.jtqbackend.SpringBootApp; + +/** + * This auto configuration will be used by spring boot to enable traditional deployment to a servlet container. You may + * remove this class if you run your application with embedded tomcat only. Tomcat startup will be twice as fast. + */ +@Configuration +@EnableAutoConfiguration +public class ServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + + return application.sources(SpringBootApp.class); + } +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebConfig.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebConfig.java new file mode 100644 index 0000000..a3b9c40 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebConfig.java @@ -0,0 +1,80 @@ +package com.devonfw.application.jtqbackend.general.service.impl.config; + +import javax.servlet.Filter; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.AutowireCapableBeanFactory; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.filter.CharacterEncodingFilter; + +import com.devonfw.module.logging.common.api.DiagnosticContextFacade; +import com.devonfw.module.logging.common.impl.DiagnosticContextFacadeImpl; +import com.devonfw.module.logging.common.impl.DiagnosticContextFilter; +import com.devonfw.module.logging.common.impl.PerformanceLogFilter; +import com.devonfw.module.service.common.api.constants.ServiceConstants; + +/** + * Registers a number of filters for web requests. + */ +@Configuration +public class WebConfig { + + private @Autowired AutowireCapableBeanFactory beanFactory; + + /** + * @return the {@link FilterRegistrationBean} to register the {@link PerformanceLogFilter} that will log all requests + * with their duration and status code. + */ + @Bean + public FilterRegistrationBean performanceLogFilter() { + + FilterRegistrationBean registration = new FilterRegistrationBean(); + Filter performanceLogFilter = new PerformanceLogFilter(); + this.beanFactory.autowireBean(performanceLogFilter); + registration.setFilter(performanceLogFilter); + registration.addUrlPatterns("/*"); + return registration; + } + + /** + * @return the {@link DiagnosticContextFacade} implementation. + */ + @Bean(name = "DiagnosticContextFacade") + public DiagnosticContextFacade diagnosticContextFacade() { + + return new DiagnosticContextFacadeImpl(); + } + + /** + * @return the {@link FilterRegistrationBean} to register the {@link DiagnosticContextFilter} that adds the + * correlation id as MDC so it will be included in all associated logs. + */ + @Bean + public FilterRegistrationBean diagnosticContextFilter() { + + FilterRegistrationBean registration = new FilterRegistrationBean(); + Filter diagnosticContextFilter = new DiagnosticContextFilter(); + this.beanFactory.autowireBean(diagnosticContextFilter); + registration.setFilter(diagnosticContextFilter); + registration.addUrlPatterns(ServiceConstants.URL_PATH_SERVICES + "/*"); + return registration; + } + + /** + * @return the {@link FilterRegistrationBean} to register the {@link CharacterEncodingFilter} to set the encoding. + */ + @Bean + public FilterRegistrationBean setCharacterEncodingFilter() { + + FilterRegistrationBean registration = new FilterRegistrationBean(); + CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); + characterEncodingFilter.setEncoding("UTF-8"); + characterEncodingFilter.setForceEncoding(false); + this.beanFactory.autowireBean(characterEncodingFilter); + registration.setFilter(characterEncodingFilter); + registration.addUrlPatterns("/*"); + return registration; + } +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebSecurityBeansConfig.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebSecurityBeansConfig.java new file mode 100644 index 0000000..dfa0d4d --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebSecurityBeansConfig.java @@ -0,0 +1,52 @@ +package com.devonfw.application.jtqbackend.general.service.impl.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.crypto.factory.PasswordEncoderFactories; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.csrf.CsrfTokenRepository; +import org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository; + +import com.devonfw.application.jtqbackend.general.logic.impl.config.DefaultRolesPrefixPostProcessor; + +/** + * This configuration class provides factory methods for several Spring security related beans. + */ +@Configuration +public class WebSecurityBeansConfig { + + /** + * This method provides a new instance of {@code CsrfTokenRepository} + * + * @return the newly created {@code CsrfTokenRepository} + */ + @Bean + public CsrfTokenRepository csrfTokenRepository() { + + return new HttpSessionCsrfTokenRepository(); + } + + /** + * This method provides a new instance of {@code DefaultRolesPrefixPostProcessor} + * + * @return the newly create {@code DefaultRolesPrefixPostProcessor} + */ + @Bean + public static DefaultRolesPrefixPostProcessor defaultRolesPrefixPostProcessor() { + + // By default Spring-Security is setting the prefix "ROLE_" for all permissions/authorities. + // We disable this undesired behavior here... + return new DefaultRolesPrefixPostProcessor(""); + } + + /** + * This method provide a new instance of {@code DelegatingPasswordEncoder} + * + * @return the newly create {@code DelegatingPasswordEncoder} + */ + @Bean + public PasswordEncoder passwordEncoder() { + + return PasswordEncoderFactories.createDelegatingPasswordEncoder(); + } +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebSecurityConfig.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebSecurityConfig.java new file mode 100644 index 0000000..7f5a7fe --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/config/WebSecurityConfig.java @@ -0,0 +1,21 @@ +package com.devonfw.application.jtqbackend.general.service.impl.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +import com.devonfw.module.basic.common.api.config.SpringProfileConstants; + +/** + * Security configuration based on {@link WebSecurityConfigurerAdapter}. This configuration is by purpose designed most + * simple for two channels of authentication: simple login form and rest-url. (Copied from + * {@link com.devonfw.application.jtqbackend.general.service.impl.config.BaseWebSecurityConfig} + * + */ +@Configuration +@EnableWebSecurity +@Profile(SpringProfileConstants.NOT_JUNIT) +public class WebSecurityConfig extends BaseWebSecurityConfig { + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/rest/ApplicationAccessDeniedHandler.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/rest/ApplicationAccessDeniedHandler.java new file mode 100644 index 0000000..2928529 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/general/service/impl/rest/ApplicationAccessDeniedHandler.java @@ -0,0 +1,46 @@ +package com.devonfw.application.jtqbackend.general.service.impl.rest; + +import com.devonfw.module.rest.service.impl.RestServiceExceptionFacade; + +import java.io.IOException; + +import javax.inject.Inject; +import javax.inject.Named; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.core.Response; + +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.web.access.AccessDeniedHandler; + +/** + * Implementation of {@link AccessDeniedHandler}. + */ +@Named("ApplicationAccessDeniedHandler") +public class ApplicationAccessDeniedHandler implements AccessDeniedHandler { + + private RestServiceExceptionFacade exceptionFacade; + + @Override + public void handle(HttpServletRequest request, HttpServletResponse response, + AccessDeniedException accessDeniedException) throws IOException, ServletException { + + Response restResponse = this.exceptionFacade.toResponse(accessDeniedException); + Object entity = restResponse.getEntity(); + response.setStatus(restResponse.getStatus()); + if (entity != null) { + response.getWriter().write(entity.toString()); + } + } + + /** + * @param exceptionFacade the {@link RestServiceExceptionFacade} to inject. + */ + @Inject + public void setExceptionFacade(RestServiceExceptionFacade exceptionFacade) { + + this.exceptionFacade = exceptionFacade; + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/dataaccess/api/QueueDetailEntity.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/dataaccess/api/QueueDetailEntity.java new file mode 100644 index 0000000..09b20f6 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/dataaccess/api/QueueDetailEntity.java @@ -0,0 +1,208 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.dataaccess.api; + +import java.sql.Timestamp; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; +import javax.persistence.Transient; +import javax.validation.constraints.Size; + +import com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.EventEntity; +import com.devonfw.application.jtqbackend.general.dataaccess.api.ApplicationPersistenceEntity; +import com.devonfw.application.jtqbackend.queuedetailmanagement.common.api.QueueDetail; +import com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api.VisitorEntity; + +/** + * @author azhussai + */ +@Entity +@Table(name = "QueueDetail") +public class QueueDetailEntity extends ApplicationPersistenceEntity implements QueueDetail { + + @Size(min = 2, max = 5) + private String queueNumber; + + @Temporal(TemporalType.TIMESTAMP) + private Timestamp creationTime; + + @Temporal(TemporalType.TIMESTAMP) + private Timestamp startTime; + + @Temporal(TemporalType.TIMESTAMP) + private Timestamp endTime; + + private String minEstimatedTime; + + private VisitorEntity visitor; + + private EventEntity Event; + + private static final long serialVersionUID = 1L; + + /** + * @return queueNumber + */ + public String getQueueNumber() { + + return this.queueNumber; + } + + /** + * @param queueNumber new value of {@link #getqueueNumber}. + */ + public void setQueueNumber(String queueNumber) { + + this.queueNumber = queueNumber; + } + + /** + * @return creationTime + */ + public Timestamp getCreationTime() { + + return this.creationTime; + } + + /** + * @param creationTime new value of {@link #getcreationTime}. + */ + public void setCreationTime(Timestamp creationTime) { + + this.creationTime = creationTime; + } + + /** + * @return startTime + */ + public Timestamp getStartTime() { + + return this.startTime; + } + + /** + * @param startTime new value of {@link #getstartTime}. + */ + public void setStartTime(Timestamp startTime) { + + this.startTime = startTime; + } + + /** + * @return endTime + */ + public Timestamp getEndTime() { + + return this.endTime; + } + + /** + * @param endTime new value of {@link #getendTime}. + */ + public void setEndTime(Timestamp endTime) { + + this.endTime = endTime; + } + + /** + * @return minEstimatedTime + */ + public String getMinEstimatedTime() { + + return this.minEstimatedTime; + } + + /** + * @param minEstimatedTime new value of {@link #getminEstimatedTime}. + */ + public void setMinEstimatedTime(String minEstimatedTime) { + + this.minEstimatedTime = minEstimatedTime; + } + + /** + * @return visitor + */ + @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER) + @JoinColumn(name = "idVisitor") + public VisitorEntity getVisitor() { + + return this.visitor; + } + + /** + * @param visitor new value of {@link #getvisitor}. + */ + public void setVisitor(VisitorEntity visitor) { + + this.visitor = visitor; + } + + /** + * @return event + */ + @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER) + @JoinColumn(name = "idEvent") + public EventEntity getEvent() { + + return this.Event; + } + + /** + * @param event new value of {@link #getevent}. + */ + public void setEvent(EventEntity event) { + + this.Event = event; + } + + @Override + @Transient + public Long getVisitorId() { + + if (this.visitor == null) { + return null; + } + return this.visitor.getId(); + } + + @Override + public void setVisitorId(Long visitorId) { + + if (visitorId == null) { + this.visitor = null; + } else { + VisitorEntity visitorEntity = new VisitorEntity(); + visitorEntity.setId(visitorId); + this.visitor = visitorEntity; + } + } + + @Override + @Transient + public Long getEventId() { + + if (this.Event == null) { + return null; + } + return this.Event.getId(); + } + + @Override + public void setEventId(Long EventId) { + + if (EventId == null) { + this.Event = null; + } else { + EventEntity eventEntity = new EventEntity(); + eventEntity.setId(EventId); + this.Event = eventEntity; + } + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/dataaccess/api/repo/QueueDetailRepository.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/dataaccess/api/repo/QueueDetailRepository.java new file mode 100644 index 0000000..646b8ab --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/dataaccess/api/repo/QueueDetailRepository.java @@ -0,0 +1,142 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.dataaccess.api.repo; + +import static com.querydsl.core.alias.Alias.$; + +import java.sql.Timestamp; +import java.util.Iterator; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Sort.Order; + +import com.devonfw.application.jtqbackend.queuedetailmanagement.dataaccess.api.QueueDetailEntity; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailSearchCriteriaTo; +import com.devonfw.module.jpa.dataaccess.api.QueryUtil; +import com.devonfw.module.jpa.dataaccess.api.data.DefaultRepository; +import com.querydsl.jpa.impl.JPAQuery; + +/** + * {@link DefaultRepository} for {@link QueueDetailEntity} + */ +public interface QueueDetailRepository extends DefaultRepository { + + /** + * @param criteria the {@link QueueDetailSearchCriteriaTo} with the criteria to search. + * @return the {@link Page} of the {@link QueueDetailEntity} objects that matched the search. If no pageable is set, + * it will return a unique page with all the objects that matched the search. + */ + default Page findByCriteria(QueueDetailSearchCriteriaTo criteria) { + + QueueDetailEntity alias = newDslAlias(); + JPAQuery query = newDslQuery(alias); + + String queueNumber = criteria.getQueueNumber(); + if (queueNumber != null && !queueNumber.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getQueueNumber()), queueNumber, criteria.getQueueNumberOption()); + } + Timestamp creationTime = criteria.getCreationTime(); + if (creationTime != null) { + query.where($(alias.getCreationTime()).eq(creationTime)); + } + Timestamp startTime = criteria.getStartTime(); + if (startTime != null) { + query.where($(alias.getStartTime()).eq(startTime)); + } + Timestamp endTime = criteria.getEndTime(); + if (endTime != null) { + query.where($(alias.getEndTime()).eq(endTime)); + } + String minEstimatedTime = criteria.getMinEstimatedTime(); + if (minEstimatedTime != null && !minEstimatedTime.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getMinEstimatedTime()), minEstimatedTime, + criteria.getMinEstimatedTimeOption()); + } + Long visitor = criteria.getVisitorId(); + if (visitor != null) { + query.where($(alias.getVisitor().getId()).eq(visitor)); + } + Long Event = criteria.getEventId(); + if (Event != null) { + query.where($(alias.getEvent().getId()).eq(Event)); + } + if (criteria.getPageable() == null) { + criteria.setPageable(PageRequest.of(0, Integer.MAX_VALUE)); + } else { + addOrderBy(query, alias, criteria.getPageable().getSort()); + } + + return QueryUtil.get().findPaginated(criteria.getPageable(), query, true); + } + + /** + * Add sorting to the given query on the given alias + * + * @param query to add sorting to + * @param alias to retrieve columns from for sorting + * @param sort specification of sorting + */ + public default void addOrderBy(JPAQuery query, QueueDetailEntity alias, Sort sort) { + + if (sort != null && sort.isSorted()) { + Iterator it = sort.iterator(); + while (it.hasNext()) { + Order next = it.next(); + switch (next.getProperty()) { + case "queueNumber": + if (next.isAscending()) { + query.orderBy($(alias.getQueueNumber()).asc()); + } else { + query.orderBy($(alias.getQueueNumber()).desc()); + } + break; + case "creationTime": + if (next.isAscending()) { + query.orderBy($(alias.getCreationTime()).asc()); + } else { + query.orderBy($(alias.getCreationTime()).desc()); + } + break; + case "startTime": + if (next.isAscending()) { + query.orderBy($(alias.getStartTime()).asc()); + } else { + query.orderBy($(alias.getStartTime()).desc()); + } + break; + case "endTime": + if (next.isAscending()) { + query.orderBy($(alias.getEndTime()).asc()); + } else { + query.orderBy($(alias.getEndTime()).desc()); + } + break; + case "minEstimatedTime": + if (next.isAscending()) { + query.orderBy($(alias.getMinEstimatedTime()).asc()); + } else { + query.orderBy($(alias.getMinEstimatedTime()).desc()); + } + break; + case "visitor": + if (next.isAscending()) { + query.orderBy($(alias.getVisitor().getId().toString()).asc()); + } else { + query.orderBy($(alias.getVisitor().getId().toString()).desc()); + } + break; + case "Event": + if (next.isAscending()) { + query.orderBy($(alias.getEvent().getId().toString()).asc()); + } else { + query.orderBy($(alias.getEvent().getId().toString()).desc()); + } + break; + default: + throw new IllegalArgumentException("Sorted by the unknown property '" + next.getProperty() + "'"); + } + } + } + } + +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/base/usecase/AbstractQueueDetailUc.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/base/usecase/AbstractQueueDetailUc.java new file mode 100644 index 0000000..3cb1711 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/base/usecase/AbstractQueueDetailUc.java @@ -0,0 +1,27 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.base.usecase; + +import javax.inject.Inject; + +import com.devonfw.application.jtqbackend.general.logic.base.AbstractUc; +import com.devonfw.application.jtqbackend.queuedetailmanagement.dataaccess.api.repo.QueueDetailRepository; + +/** + * Abstract use case for QueueDetails, which provides access to the commonly necessary data access objects. + */ +public class AbstractQueueDetailUc extends AbstractUc { + + /** @see #getQueueDetailRepository() */ + @Inject + private QueueDetailRepository queueDetailRepository; + + /** + * Returns the field 'queueDetailRepository'. + * + * @return the {@link QueueDetailRepository} instance. + */ + public QueueDetailRepository getQueueDetailRepository() { + + return this.queueDetailRepository; + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/QueuedetailmanagementImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/QueuedetailmanagementImpl.java new file mode 100644 index 0000000..42e9ef4 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/QueuedetailmanagementImpl.java @@ -0,0 +1,70 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.impl; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.general.logic.base.AbstractComponentFacade; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.Queuedetailmanagement; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailCto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailSearchCriteriaTo; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.usecase.UcFindQueueDetail; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.usecase.UcManageQueueDetail; + +/** + * Implementation of component interface of queuedetailmanagement + */ +@Named +public class QueuedetailmanagementImpl extends AbstractComponentFacade implements Queuedetailmanagement { + + @Inject + private UcFindQueueDetail ucFindQueueDetail; + + @Inject + private UcManageQueueDetail ucManageQueueDetail; + + @Override + public QueueDetailEto findQueueDetail(long id) { + + return this.ucFindQueueDetail.findQueueDetail(id); + } + + @Override + public Page findQueueDetails(QueueDetailSearchCriteriaTo criteria) { + + return this.ucFindQueueDetail.findQueueDetails(criteria); + } + + @Override + public QueueDetailEto saveQueueDetail(QueueDetailEto queuedetail) { + + return this.ucManageQueueDetail.saveQueueDetail(queuedetail); + } + + @Override + public void deleteQueueDetail(long id) { + + this.ucManageQueueDetail.deleteQueueDetail(id); + } + + @Override + public QueueDetailCto findQueueDetailCto(long id) { + + return this.ucFindQueueDetail.findQueueDetailCto(id); + } + + @Override + public Page findQueueDetailCtos(QueueDetailSearchCriteriaTo criteria) { + + return this.ucFindQueueDetail.findQueueDetailCtos(criteria); + } + + @Override + public String getEstimatedTimeForVisitor(int visitorCount) { + + return this.ucManageQueueDetail.getEstimatedTimeForVisitor(visitorCount); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/usecase/UcFindQueueDetailImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/usecase/UcFindQueueDetailImpl.java new file mode 100644 index 0000000..9bf3bcd --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/usecase/UcFindQueueDetailImpl.java @@ -0,0 +1,88 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.impl.usecase; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import javax.inject.Named; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.dataaccess.api.QueueDetailEntity; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailCto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailSearchCriteriaTo; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.usecase.UcFindQueueDetail; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.base.usecase.AbstractQueueDetailUc; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; + +/** + * Use case implementation for searching, filtering and getting QueueDetails + */ +@Named +@Validated +@Transactional +public class UcFindQueueDetailImpl extends AbstractQueueDetailUc implements UcFindQueueDetail { + + /** + * Logger instance. + */ + private static final Logger LOG = LoggerFactory.getLogger(UcFindQueueDetailImpl.class); + + @Override + public QueueDetailEto findQueueDetail(long id) { + + LOG.debug("Get QueueDetail with id {} from database.", id); + Optional foundEntity = getQueueDetailRepository().findById(id); + if (foundEntity.isPresent()) + return getBeanMapper().map(foundEntity.get(), QueueDetailEto.class); + else + return null; + } + + @Override + public Page findQueueDetails(QueueDetailSearchCriteriaTo criteria) { + + Page queuedetails = getQueueDetailRepository().findByCriteria(criteria); + return mapPaginatedEntityList(queuedetails, QueueDetailEto.class); + } + + @Override + public QueueDetailCto findQueueDetailCto(long id) { + + LOG.debug("Get QueueDetailCto with id {} from database.", id); + QueueDetailEntity entity = getQueueDetailRepository().find(id); + QueueDetailCto cto = new QueueDetailCto(); + cto.setQueueDetail(getBeanMapper().map(entity, QueueDetailEto.class)); + cto.setVisitor(getBeanMapper().map(entity.getVisitor(), VisitorEto.class)); + cto.setEvent(getBeanMapper().map(entity.getEvent(), EventEto.class)); + + return cto; + } + + @Override + public Page findQueueDetailCtos(QueueDetailSearchCriteriaTo criteria) { + + Page queuedetails = getQueueDetailRepository().findByCriteria(criteria); + List ctos = new ArrayList<>(); + for (QueueDetailEntity entity : queuedetails.getContent()) { + QueueDetailCto cto = new QueueDetailCto(); + cto.setQueueDetail(getBeanMapper().map(entity, QueueDetailEto.class)); + cto.setVisitor(getBeanMapper().map(entity.getVisitor(), VisitorEto.class)); + cto.setEvent(getBeanMapper().map(entity.getEvent(), EventEto.class)); + ctos.add(cto); + } + Pageable pagResultTo = PageRequest.of(criteria.getPageable().getPageNumber(), criteria.getPageable().getPageSize()); + + return new PageImpl<>(ctos, pagResultTo, queuedetails.getTotalElements()); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/usecase/UcManageQueueDetailImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/usecase/UcManageQueueDetailImpl.java new file mode 100644 index 0000000..b4989b0 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/usecase/UcManageQueueDetailImpl.java @@ -0,0 +1,235 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.impl.usecase; + +import java.sql.Timestamp; +import java.time.Instant; +import java.util.List; + +import javax.inject.Named; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.EventEntity; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.Eventmanagement; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.dataaccess.api.QueueDetailEntity; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.Queuedetailmanagement; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailSearchCriteriaTo; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.usecase.UcManageQueueDetail; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.base.usecase.AbstractQueueDetailUc; + +/** + * Use case implementation for modifying and deleting QueueDetails + */ +@Named +@Validated +@Transactional +public class UcManageQueueDetailImpl extends AbstractQueueDetailUc implements UcManageQueueDetail { + + @Autowired + private Eventmanagement eventmanagement; + + @Autowired + private Queuedetailmanagement queuedetailmanagement; + + /** Logger instance. */ + private static final Logger LOG = LoggerFactory.getLogger(UcManageQueueDetailImpl.class); + + private int visitorCount; + + @Override + public void deleteQueueDetail(long queueDetailId) { + + QueueDetailEntity queueDetail = getQueueDetailRepository().find(queueDetailId); + getQueueDetailRepository().delete(queueDetail); + this.eventmanagement.decreaseEventVisitorCount(queueDetail.getEventId()); + } + + /** + * Saves the Queue Detail. + * + * @param QueueDetailEto. Return type of function is QueueDetailEto. + */ + + @Override + public QueueDetailEto saveQueueDetail(QueueDetailEto queueDetail) { + + QueueDetailEntity queueDetailEntity = getBeanMapper().map(queueDetail, QueueDetailEntity.class); + + List queuedetailEtosInQueue = getListOfQueueDetailEto(queueDetailEntity); + + if (queuedetailEtosInQueue.isEmpty()) { + + List eventqueuedetailEtosInQueue = getEventQueueDetailEtoList(queueDetailEntity); + + queueDetailEntity = processQueueDetail(queueDetailEntity, eventqueuedetailEtosInQueue); + + queueDetailEntity = getQueueDetailRepository().save(queueDetailEntity); + + this.eventmanagement.increaseEventVisitorCount(queueDetailEntity.getEventId()); + + return getBeanMapper().map(queueDetailEntity, QueueDetailEto.class); + + } else { + return queuedetailEtosInQueue.get(0); + } + } + + /** + * fetches the list of Queue Details with the specified criteria. + * + * @param QueueDetailEntity. Return type of function is List of QueueDetailEto. + */ + private List getListOfQueueDetailEto(QueueDetailEntity queueDetailEntity) { + + QueueDetailSearchCriteriaTo searchCriteriaForQueueDetail = setSearchCriteria(queueDetailEntity); + + List queuedetailEtosInQueue = this.queuedetailmanagement + .findQueueDetails(searchCriteriaForQueueDetail).getContent(); + return queuedetailEtosInQueue; + } + + /** + * sets the search criteria for queue detail with eventid and visitor id. + * + * @param QueueDetailEntity. Return type search criteria object. + */ + private QueueDetailSearchCriteriaTo setSearchCriteria(QueueDetailEntity queueDetailEntity) { + + QueueDetailSearchCriteriaTo queueDetailSearchCriteriaTo = new QueueDetailSearchCriteriaTo(); + queueDetailSearchCriteriaTo.setEventId(queueDetailEntity.getEventId()); + queueDetailSearchCriteriaTo.setVisitorId(queueDetailEntity.getVisitorId()); + + return queueDetailSearchCriteriaTo; + + } + + /** + * fetches the list of Queue Details with the specified criteria. + * + * @param QueueDetailEntity. Return type of function is List of QueueDetailEto. + */ + private List getEventQueueDetailEtoList(QueueDetailEntity queueDetailEntity) { + + QueueDetailSearchCriteriaTo searchCriteriaForEvent = setSearchCriteriaForEvent(queueDetailEntity.getEventId()); + + List eventqueuedetailEtosInQueue = this.queuedetailmanagement + .findQueueDetails(searchCriteriaForEvent).getContent(); + return eventqueuedetailEtosInQueue; + } + + /** + * sets the search criteria for queue detail with eventid. + * + * @param QueueDetailEntity. Return type search criteria object. + */ + private QueueDetailSearchCriteriaTo setSearchCriteriaForEvent(long eventId) { + + QueueDetailSearchCriteriaTo queueDetailSearchCriteriaToForEvent = new QueueDetailSearchCriteriaTo(); + queueDetailSearchCriteriaToForEvent.setEventId(eventId); + + return queueDetailSearchCriteriaToForEvent; + } + + /** + * Process and assign all the different field values to the QueueDetail. + * + * @param QueueDetailEntity and QueueDetailEto. Return type QueueDetailEntity. + */ + + private QueueDetailEntity processQueueDetail(QueueDetailEntity queueDetailEntity, + List eventqueuedetailEtosInQueue) { + + assignQueueNumber(eventqueuedetailEtosInQueue, queueDetailEntity); + + int visitorCount = returnVisitorCount(queueDetailEntity.getEventId()); + + queueDetailEntity = setTimingsInQueue(queueDetailEntity, visitorCount); + + return queueDetailEntity; + } + + /** + * Assign Queue Number to the QueueDetail. + * + * @param QueueDetailEntity and QueueDetailEto. Return type void. + */ + + public void assignQueueNumber(List eventqueuedetailEtosInQueue, QueueDetailEntity queueDetailEntity) { + + if (eventqueuedetailEtosInQueue.isEmpty()) { + + queueDetailEntity.setQueueNumber("Q001"); + + } else { + + queueDetailEntity.setQueueNumber(generateQueueNumber(eventqueuedetailEtosInQueue)); + + } + } + + /** + * to get the visitor count inside the particular event. + * + * @param Event Id. Return type int. + */ + private int returnVisitorCount(long eventId) { + + EventEto eventEto = this.eventmanagement.findEvent(eventId); + EventEntity eventEntity = getBeanMapper().map(eventEto, EventEntity.class); + int visitorCount = eventEntity.getVisitorCount(); + return visitorCount; + } + + /** + * sets the timings in queue Detail. + * + * @param QueueDetailEntity, visitor_count. Return type QueueDetailEntity. + */ + private QueueDetailEntity setTimingsInQueue(QueueDetailEntity queueDetailEntity, int visitor_Count) { + + queueDetailEntity.setCreationTime(Timestamp.from(Instant.now())); + queueDetailEntity.setStartTime(Timestamp.from(Instant.now())); + queueDetailEntity.setEndTime(null); + queueDetailEntity.setMinEstimatedTime(getEstimatedTimeForVisitor(visitor_Count)); + + return queueDetailEntity; + } + + /** + * generates the queue Number for the particular Queue. + * + * @param List of QueueDetailEto.Return type new queue number in string format. + */ + public String generateQueueNumber(List eventqueuedetailEtosInQueue) { + + QueueDetailEto lastQueueDetail = eventqueuedetailEtosInQueue.get(eventqueuedetailEtosInQueue.size() - 1); + int lastQueueNumber = Integer.parseInt(lastQueueDetail.getQueueNumber().substring(1)); + + int updatedQueueNumber = lastQueueNumber + 1; + + String integerPart = String.valueOf(updatedQueueNumber); + String newQueueNumber = "Q00" + integerPart; + return newQueueNumber; + } + + /** + * generates the estimated time for the particular visitor's turn to come. + * + * @param visitor count.Return estimated time in string format. + */ + @Override + public String getEstimatedTimeForVisitor(int visitorCount) { + + String minAttentionTime = "5 minutes"; + String calculatedOutput = ""; + int minTimePerQueue = Integer.parseInt(minAttentionTime.substring(0, 1)); + int calculateEstimatedTime = minTimePerQueue * visitorCount; + return calculatedOutput = String.valueOf(calculateEstimatedTime) + " minutes"; + + } +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/service/impl/rest/QueuedetailmanagementRestServiceImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/service/impl/rest/QueuedetailmanagementRestServiceImpl.java new file mode 100644 index 0000000..45d4b80 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/queuedetailmanagement/service/impl/rest/QueuedetailmanagementRestServiceImpl.java @@ -0,0 +1,59 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.service.impl.rest; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.Queuedetailmanagement; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailCto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailSearchCriteriaTo; +import com.devonfw.application.jtqbackend.queuedetailmanagement.service.api.rest.QueuedetailmanagementRestService; + +/** + * The service implementation for REST calls in order to execute the logic of component {@link Queuedetailmanagement}. + */ +@Named("QueuedetailmanagementRestService") +public class QueuedetailmanagementRestServiceImpl implements QueuedetailmanagementRestService { + + @Inject + private Queuedetailmanagement queuedetailmanagement; + + @Override + public QueueDetailEto getQueueDetail(long id) { + + return this.queuedetailmanagement.findQueueDetail(id); + } + + @Override + public QueueDetailEto saveQueueDetail(QueueDetailEto queuedetail) { + + return this.queuedetailmanagement.saveQueueDetail(queuedetail); + } + + @Override + public void deleteQueueDetail(long id) { + + this.queuedetailmanagement.deleteQueueDetail(id); + } + + @Override + public Page findQueueDetails(QueueDetailSearchCriteriaTo searchCriteriaTo) { + + return this.queuedetailmanagement.findQueueDetails(searchCriteriaTo); + } + + @Override + public QueueDetailCto getQueueDetailCto(long id) { + + return this.queuedetailmanagement.findQueueDetailCto(id); + } + + @Override + public Page findQueueDetailCtos(QueueDetailSearchCriteriaTo searchCriteriaTo) { + + return this.queuedetailmanagement.findQueueDetailCtos(searchCriteriaTo); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/dataaccess/api/VisitorEntity.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/dataaccess/api/VisitorEntity.java new file mode 100644 index 0000000..b9c83b9 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/dataaccess/api/VisitorEntity.java @@ -0,0 +1,170 @@ +package com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api; + +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.validation.constraints.NotNull; + +import com.devonfw.application.jtqbackend.general.common.api.validation.EmailExtended; +import com.devonfw.application.jtqbackend.general.common.api.validation.Phone; +import com.devonfw.application.jtqbackend.general.dataaccess.api.ApplicationPersistenceEntity; +import com.devonfw.application.jtqbackend.visitormanagement.common.api.Visitor; + +/** + * @author azhussai + */ +@Entity +@Table(name = "Visitor") +public class VisitorEntity extends ApplicationPersistenceEntity implements Visitor { + + @NotNull + @EmailExtended + private String username; + + @NotNull + private String name; + + @NotNull + @Phone + private String phoneNumber; + + @NotNull + private String password; + + @NotNull + private Boolean acceptedCommercial; + + @NotNull + private Boolean acceptedTerms; + + @NotNull + private Boolean userType; + + private static final long serialVersionUID = 1L; + + /** + * @return username + */ + @Override + public String getUsername() { + + return this.username; + } + + /** + * @param username new value of {@link #getusername}. + */ + @Override + public void setUsername(String username) { + + this.username = username; + } + + /** + * @return name + */ + @Override + public String getName() { + + return this.name; + } + + /** + * @param name new value of {@link #getname}. + */ + @Override + public void setName(String name) { + + this.name = name; + } + + /** + * @return phoneNumber + */ + @Override + public String getPhoneNumber() { + + return this.phoneNumber; + } + + /** + * @param phoneNumber new value of {@link #getphoneNumber}. + */ + @Override + public void setPhoneNumber(String phoneNumber) { + + this.phoneNumber = phoneNumber; + } + + /** + * @return password + */ + @Override + public String getPassword() { + + return this.password; + } + + /** + * @param password new value of {@link #getpassword}. + */ + @Override + public void setPassword(String password) { + + this.password = password; + } + + /** + * @return acceptedCommercial + */ + @Override + public Boolean getAcceptedCommercial() { + + return this.acceptedCommercial; + } + + /** + * @param acceptedCommercial new value of {@link #getacceptedCommercial}. + */ + @Override + public void setAcceptedCommercial(Boolean acceptedCommercial) { + + this.acceptedCommercial = acceptedCommercial; + } + + /** + * @return acceptedTerms + */ + @Override + public Boolean getAcceptedTerms() { + + return this.acceptedTerms; + } + + /** + * @param acceptedTerms new value of {@link #getacceptedTerms}. + */ + @Override + public void setAcceptedTerms(Boolean acceptedTerms) { + + this.acceptedTerms = acceptedTerms; + } + + /** + * @return userType + */ + @Override + public Boolean getUserType() { + + return this.userType; + } + + /** + * @param userType new value of {@link #getuserType}. + */ + @Override + public void setUserType(Boolean userType) { + + this.userType = userType; + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/dataaccess/api/repo/VisitorRepository.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/dataaccess/api/repo/VisitorRepository.java new file mode 100644 index 0000000..6a84289 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/dataaccess/api/repo/VisitorRepository.java @@ -0,0 +1,140 @@ +package com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api.repo; + +import static com.querydsl.core.alias.Alias.$; + +import java.util.Iterator; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Sort.Order; + +import com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api.VisitorEntity; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorSearchCriteriaTo; +import com.devonfw.module.jpa.dataaccess.api.QueryUtil; +import com.devonfw.module.jpa.dataaccess.api.data.DefaultRepository; +import com.querydsl.jpa.impl.JPAQuery; + +/** + * {@link DefaultRepository} for {@link VisitorEntity} + */ +public interface VisitorRepository extends DefaultRepository { + + /** + * @param criteria the {@link VisitorSearchCriteriaTo} with the criteria to search. + * @return the {@link Page} of the {@link VisitorEntity} objects that matched the search. If no pageable is set, it + * will return a unique page with all the objects that matched the search. + */ + default Page findByCriteria(VisitorSearchCriteriaTo criteria) { + + VisitorEntity alias = newDslAlias(); + JPAQuery query = newDslQuery(alias); + + String username = criteria.getUsername(); + if (username != null && !username.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getUsername()), username, criteria.getUsernameOption()); + } + String name = criteria.getName(); + if (name != null && !name.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getName()), name, criteria.getNameOption()); + } + String phoneNumber = criteria.getPhoneNumber(); + if (phoneNumber != null && !phoneNumber.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getPhoneNumber()), phoneNumber, criteria.getPhoneNumberOption()); + } + String password = criteria.getPassword(); + if (password != null && !password.isEmpty()) { + QueryUtil.get().whereString(query, $(alias.getPassword()), password, criteria.getPasswordOption()); + } + Boolean acceptedCommercial = criteria.getAcceptedCommercial(); + if (acceptedCommercial != null) { + query.where($(alias.getAcceptedCommercial()).eq(acceptedCommercial)); + } + Boolean acceptedTerms = criteria.getAcceptedTerms(); + if (acceptedTerms != null) { + query.where($(alias.getAcceptedTerms()).eq(acceptedTerms)); + } + Boolean userType = criteria.getUserType(); + if (userType != null) { + query.where($(alias.getUserType()).eq(userType)); + } + if (criteria.getPageable() == null) { + criteria.setPageable(PageRequest.of(0, Integer.MAX_VALUE)); + } else { + addOrderBy(query, alias, criteria.getPageable().getSort()); + } + + return QueryUtil.get().findPaginated(criteria.getPageable(), query, true); + } + + /** + * Add sorting to the given query on the given alias + * + * @param query to add sorting to + * @param alias to retrieve columns from for sorting + * @param sort specification of sorting + */ + public default void addOrderBy(JPAQuery query, VisitorEntity alias, Sort sort) { + + if (sort != null && sort.isSorted()) { + Iterator it = sort.iterator(); + while (it.hasNext()) { + Order next = it.next(); + switch (next.getProperty()) { + case "username": + if (next.isAscending()) { + query.orderBy($(alias.getUsername()).asc()); + } else { + query.orderBy($(alias.getUsername()).desc()); + } + break; + case "name": + if (next.isAscending()) { + query.orderBy($(alias.getName()).asc()); + } else { + query.orderBy($(alias.getName()).desc()); + } + break; + case "phoneNumber": + if (next.isAscending()) { + query.orderBy($(alias.getPhoneNumber()).asc()); + } else { + query.orderBy($(alias.getPhoneNumber()).desc()); + } + break; + case "password": + if (next.isAscending()) { + query.orderBy($(alias.getPassword()).asc()); + } else { + query.orderBy($(alias.getPassword()).desc()); + } + break; + case "acceptedCommercial": + if (next.isAscending()) { + query.orderBy($(alias.getAcceptedCommercial()).asc()); + } else { + query.orderBy($(alias.getAcceptedCommercial()).desc()); + } + break; + case "acceptedTerms": + if (next.isAscending()) { + query.orderBy($(alias.getAcceptedTerms()).asc()); + } else { + query.orderBy($(alias.getAcceptedTerms()).desc()); + } + break; + case "userType": + if (next.isAscending()) { + query.orderBy($(alias.getUserType()).asc()); + } else { + query.orderBy($(alias.getUserType()).desc()); + } + break; + default: + throw new IllegalArgumentException("Sorted by the unknown property '" + next.getProperty() + "'"); + } + } + } + } + +} \ No newline at end of file diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/base/usecase/AbstractVisitorUc.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/base/usecase/AbstractVisitorUc.java new file mode 100644 index 0000000..297069f --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/base/usecase/AbstractVisitorUc.java @@ -0,0 +1,27 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.base.usecase; + +import javax.inject.Inject; + +import com.devonfw.application.jtqbackend.general.logic.base.AbstractUc; +import com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api.repo.VisitorRepository; + +/** + * Abstract use case for Visitors, which provides access to the commonly necessary data access objects. + */ +public class AbstractVisitorUc extends AbstractUc { + + /** @see #getVisitorRepository() */ + @Inject + private VisitorRepository visitorRepository; + + /** + * Returns the field 'visitorRepository'. + * + * @return the {@link VisitorRepository} instance. + */ + public VisitorRepository getVisitorRepository() { + + return this.visitorRepository; + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/VisitormanagementImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/VisitormanagementImpl.java new file mode 100644 index 0000000..67de4e3 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/VisitormanagementImpl.java @@ -0,0 +1,64 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.impl; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.general.logic.base.AbstractComponentFacade; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.Visitormanagement; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorCto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorSearchCriteriaTo; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.usecase.UcFindVisitor; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.usecase.UcManageVisitor; + +/** + * Implementation of component interface of visitormanagement + */ +@Named +public class VisitormanagementImpl extends AbstractComponentFacade implements Visitormanagement { + + @Inject + private UcFindVisitor ucFindVisitor; + + @Inject + private UcManageVisitor ucManageVisitor; + + @Override + public VisitorEto findVisitor(long id) { + + return this.ucFindVisitor.findVisitor(id); + } + + @Override + public Page findVisitors(VisitorSearchCriteriaTo criteria) { + + return this.ucFindVisitor.findVisitors(criteria); + } + + @Override + public VisitorEto saveVisitor(VisitorEto visitor) { + + return this.ucManageVisitor.saveVisitor(visitor); + } + + @Override + public boolean deleteVisitor(long id) { + + return this.ucManageVisitor.deleteVisitor(id); + } + + @Override + public VisitorCto findVisitorCto(long id) { + + return ucFindVisitor.findVisitorCto(id); + } + + @Override + public Page findVisitorCtos(VisitorSearchCriteriaTo criteria) { + + return ucFindVisitor.findVisitorCtos(criteria); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/usecase/UcFindVisitorImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/usecase/UcFindVisitorImpl.java new file mode 100644 index 0000000..464b590 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/usecase/UcFindVisitorImpl.java @@ -0,0 +1,82 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.impl.usecase; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import javax.inject.Named; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api.VisitorEntity; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorCto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorSearchCriteriaTo; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.usecase.UcFindVisitor; +import com.devonfw.application.jtqbackend.visitormanagement.logic.base.usecase.AbstractVisitorUc; + +/** + * Use case implementation for searching, filtering and getting Visitors + */ +@Named +@Validated +@Transactional +public class UcFindVisitorImpl extends AbstractVisitorUc implements UcFindVisitor { + + /** + * Logger instance. + */ + private static final Logger LOG = LoggerFactory.getLogger(UcFindVisitorImpl.class); + + @Override + public VisitorEto findVisitor(long id) { + + LOG.debug("Get Visitor with id {} from database.", id); + Optional foundEntity = getVisitorRepository().findById(id); + if (foundEntity.isPresent()) + return getBeanMapper().map(foundEntity.get(), VisitorEto.class); + else + return null; + } + + @Override + public Page findVisitors(VisitorSearchCriteriaTo criteria) { + + Page visitors = getVisitorRepository().findByCriteria(criteria); + return mapPaginatedEntityList(visitors, VisitorEto.class); + } + + @Override + public VisitorCto findVisitorCto(long id) { + + LOG.debug("Get VisitorCto with id {} from database.", id); + VisitorEntity entity = getVisitorRepository().find(id); + VisitorCto cto = new VisitorCto(); + cto.setVisitor(getBeanMapper().map(entity, VisitorEto.class)); + + return cto; + } + + @Override + public Page findVisitorCtos(VisitorSearchCriteriaTo criteria) { + + Page visitors = getVisitorRepository().findByCriteria(criteria); + List ctos = new ArrayList<>(); + for (VisitorEntity entity : visitors.getContent()) { + VisitorCto cto = new VisitorCto(); + cto.setVisitor(getBeanMapper().map(entity, VisitorEto.class)); + ctos.add(cto); + } + Pageable pagResultTo = PageRequest.of(criteria.getPageable().getPageNumber(), criteria.getPageable().getPageSize()); + + return new PageImpl<>(ctos, pagResultTo, visitors.getTotalElements()); + } + +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/usecase/UcManageVisitorImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/usecase/UcManageVisitorImpl.java new file mode 100644 index 0000000..752e459 --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/logic/impl/usecase/UcManageVisitorImpl.java @@ -0,0 +1,49 @@ +package com.devonfw.application.jtqbackend.visitormanagement.logic.impl.usecase; + +import java.util.Objects; + +import javax.inject.Named; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api.VisitorEntity; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.usecase.UcManageVisitor; +import com.devonfw.application.jtqbackend.visitormanagement.logic.base.usecase.AbstractVisitorUc; + +/** + * Use case implementation for modifying and deleting Visitors + */ +@Named +@Validated +@Transactional +public class UcManageVisitorImpl extends AbstractVisitorUc implements UcManageVisitor { + + /** Logger instance. */ + private static final Logger LOG = LoggerFactory.getLogger(UcManageVisitorImpl.class); + + @Override + public boolean deleteVisitor(long visitorId) { + + VisitorEntity visitor = getVisitorRepository().find(visitorId); + getVisitorRepository().delete(visitor); + LOG.debug("The visitor with id '{}' has been deleted.", visitorId); + return true; + } + + @Override + public VisitorEto saveVisitor(VisitorEto visitor) { + + Objects.requireNonNull(visitor, "visitor"); + + VisitorEntity visitorEntity = getBeanMapper().map(visitor, VisitorEntity.class); + + // initialize, validate visitorEntity here if necessary + VisitorEntity resultEntity = getVisitorRepository().save(visitorEntity); + LOG.debug("Visitor with id '{}' has been created.", resultEntity.getId()); + return getBeanMapper().map(resultEntity, VisitorEto.class); + } +} diff --git a/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/service/impl/rest/VisitormanagementRestServiceImpl.java b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/service/impl/rest/VisitormanagementRestServiceImpl.java new file mode 100644 index 0000000..b1bbe4f --- /dev/null +++ b/backend/core/src/main/java/com/devonfw/application/jtqbackend/visitormanagement/service/impl/rest/VisitormanagementRestServiceImpl.java @@ -0,0 +1,59 @@ +package com.devonfw.application.jtqbackend.visitormanagement.service.impl.rest; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.springframework.data.domain.Page; + +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.Visitormanagement; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorCto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorEto; +import com.devonfw.application.jtqbackend.visitormanagement.logic.api.to.VisitorSearchCriteriaTo; +import com.devonfw.application.jtqbackend.visitormanagement.service.api.rest.VisitormanagementRestService; + +/** + * The service implementation for REST calls in order to execute the logic of component {@link Visitormanagement}. + */ +@Named("VisitormanagementRestService") +public class VisitormanagementRestServiceImpl implements VisitormanagementRestService { + + @Inject + private Visitormanagement visitormanagement; + + @Override + public VisitorEto getVisitor(long id) { + + return this.visitormanagement.findVisitor(id); + } + + @Override + public VisitorEto saveVisitor(VisitorEto visitor) { + + return this.visitormanagement.saveVisitor(visitor); + } + + @Override + public void deleteVisitor(long id) { + + this.visitormanagement.deleteVisitor(id); + } + + @Override + public Page findVisitors(VisitorSearchCriteriaTo searchCriteriaTo) { + + return this.visitormanagement.findVisitors(searchCriteriaTo); + } + + @Override + public VisitorCto getVisitorCto(long id) { + + return this.visitormanagement.findVisitorCto(id); + } + + @Override + public Page findVisitorCtos(VisitorSearchCriteriaTo searchCriteriaTo) { + + return this.visitormanagement.findVisitorCtos(searchCriteriaTo); + } + +} diff --git a/backend/core/src/main/resources/META-INF/cxf/org.apache.cxf.Logger b/backend/core/src/main/resources/META-INF/cxf/org.apache.cxf.Logger new file mode 100644 index 0000000..27dd788 --- /dev/null +++ b/backend/core/src/main/resources/META-INF/cxf/org.apache.cxf.Logger @@ -0,0 +1 @@ +org.apache.cxf.common.logging.Slf4jLogger \ No newline at end of file diff --git a/backend/core/src/main/resources/application.properties b/backend/core/src/main/resources/application.properties new file mode 100644 index 0000000..7268193 --- /dev/null +++ b/backend/core/src/main/resources/application.properties @@ -0,0 +1,36 @@ +# This is the configuration file shipped with the application that contains reasonable defaults. +# Environment specific configurations are configured in config/application.properties. +# If you are running in a servlet container you may add this to lib/config/application.properties in case you do not +# want to touch the WAR file. + +# server.port=8080 + +spring.application.name=jtqbackend +server.servlet.context-path=/ + +security.expose.error.details=false +security.cors.enabled=false +spring.jpa.hibernate.ddl-auto=validate + +# Datasource for accessing the database +# https://github.com/spring-projects/spring-boot/blob/d3c34ee3d1bfd3db4a98678c524e145ef9bca51c/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java +spring.jpa.database=h2 +# spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +# spring.datasource.driver-class-name=org.h2.Driver +spring.datasource.username=sa + +# Hibernate NamingStrategy has been deprecated and then removed in favor of two step naming strategy ImplicitNamingStrategy and PhysicalNamingStrategy +spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl +spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl + +# https://github.com/devonfw/devon4j/issues/65 +# https://vladmihalcea.com/the-open-session-in-view-anti-pattern/ +spring.jpa.open-in-view=false + +# to prevent that Spring Boot launches batch jobs on startup +# might otherwise lead to errors if job parameters are needed (or lead to unwanted modifications and longer startup times) +# see http://stackoverflow.com/questions/22318907/how-to-stop-spring-batch-scheduled-jobs-from-running-at-first-time-when-executin +spring.batch.job.enabled=false + +# Flyway for Database Setup and Migrations +spring.flyway.locations=classpath:db/migration diff --git a/backend/core/src/main/resources/config/application.properties b/backend/core/src/main/resources/config/application.properties new file mode 100644 index 0000000..44a5875 --- /dev/null +++ b/backend/core/src/main/resources/config/application.properties @@ -0,0 +1,29 @@ +# This is the spring boot configuration file for development. It will not be included into the application. +# In order to set specific configurations in a regular installed environment create an according file +# config/application.properties in the server. If you are deploying the application to a servlet container as untouched +# WAR file you can locate this config folder in ${symbol_dollar}{CATALINA_BASE}/lib. If you want to deploy multiple applications to +# the same container (not recommended by default) you need to ensure the WARs are extracted in webapps folder and locate +# the config folder inside the WEB-INF/classes folder of the webapplication. + +server.port=8081 +server.servlet.context-path=/jtqbackend + +security.cors.enabled=true + +# Datasource for accessing the database +# See https://github.com/devonfw/devon4j/blob/develop/documentation/guide-configuration.asciidoc#security-configuration +#jasypt.encryptor.password=none +#spring.datasource.password=ENC(7CnHiadYc0Wh2FnWADNjJg==) +spring.datasource.password= +spring.datasource.url=jdbc:h2:./.jtqbackend; + +# print SQL to console for debugging (e.g. detect N+1 issues) +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true + +# Enable JSON pretty printing +spring.jackson.serialization.INDENT_OUTPUT=true + +# Flyway for Database Setup and Migrations +spring.flyway.enabled=true +spring.flyway.clean-on-validation-error=true diff --git a/backend/core/src/main/resources/db/migration/1.0/V0001__Create_Sequence.sql b/backend/core/src/main/resources/db/migration/1.0/V0001__Create_Sequence.sql new file mode 100644 index 0000000..6bf006b --- /dev/null +++ b/backend/core/src/main/resources/db/migration/1.0/V0001__Create_Sequence.sql @@ -0,0 +1,3 @@ +-- Leave a large ID space reserved for master-data and test-data +CREATE SEQUENCE HIBERNATE_SEQUENCE START WITH 1000000; + diff --git a/backend/core/src/main/resources/db/migration/1.0/V0005__Create_Visitor.sql b/backend/core/src/main/resources/db/migration/1.0/V0005__Create_Visitor.sql new file mode 100644 index 0000000..f8f4c55 --- /dev/null +++ b/backend/core/src/main/resources/db/migration/1.0/V0005__Create_Visitor.sql @@ -0,0 +1,4 @@ +create table Visitor( id BIGINT NOT NULL AUTO_INCREMENT, modificationCounter INTEGER NOT NULL, +username VARCHAR(255), name VARCHAR(255), password VARCHAR(255), phoneNumber VARCHAR(255), +acceptedCommercial BOOL DEFAULT '0', acceptedTerms BOOL NOT NULL DEFAULT '0', userType BOOL DEFAULT '0', +CONSTRAINT PK_Visitor PRIMARY KEY(id) ); \ No newline at end of file diff --git a/backend/core/src/main/resources/db/migration/1.0/V0006__Create_Event.sql b/backend/core/src/main/resources/db/migration/1.0/V0006__Create_Event.sql new file mode 100644 index 0000000..04e73ee --- /dev/null +++ b/backend/core/src/main/resources/db/migration/1.0/V0006__Create_Event.sql @@ -0,0 +1,4 @@ +create table Event( id BIGINT NOT NULL AUTO_INCREMENT, modificationCounter INTEGER NOT NULL, +eventName VARCHAR(255),startDate TIMESTAMP,endDate TIMESTAMP, location VARCHAR(255), +description VARCHAR(255), logo VARCHAR(255), attentionTime VARCHAR(50), visitorCount INTEGER NOT NULL DEFAULT '0', +CONSTRAINT PK_Event PRIMARY KEY(id) ); \ No newline at end of file diff --git a/backend/core/src/main/resources/db/migration/1.0/V0007__Create_Queue_Detail.sql b/backend/core/src/main/resources/db/migration/1.0/V0007__Create_Queue_Detail.sql new file mode 100644 index 0000000..ed45e97 --- /dev/null +++ b/backend/core/src/main/resources/db/migration/1.0/V0007__Create_Queue_Detail.sql @@ -0,0 +1,5 @@ +CREATE TABLE QueueDetail( id BIGINT NOT NULL AUTO_INCREMENT, modificationCounter INTEGER NOT NULL, +queueNumber VARCHAR(5), creationTime TIMESTAMP, startTime TIMESTAMP, endTime TIMESTAMP, minEstimatedTime VARCHAR(60), +idVisitor BIGINT NOT NULL, idEvent BIGINT NOT NULL, CONSTRAINT PK_QueueDetail PRIMARY KEY(id), +CONSTRAINT FK_QueueDetail_idVisitor FOREIGN KEY(idVisitor) REFERENCES Visitor(id), +CONSTRAINT FK_QueueDetail_idEvent FOREIGN KEY(idEvent) REFERENCES Event(id)); \ No newline at end of file diff --git a/backend/core/src/main/resources/db/migration/1.0/V0008__Master_data.sql b/backend/core/src/main/resources/db/migration/1.0/V0008__Master_data.sql new file mode 100644 index 0000000..183b808 --- /dev/null +++ b/backend/core/src/main/resources/db/migration/1.0/V0008__Master_data.sql @@ -0,0 +1,23 @@ +INSERT INTO Visitor (id, modificationCounter, username, name, password, phoneNumber, acceptedCommercial, +acceptedTerms, userType) VALUES (0, 1, 'mike@mail.com', 'Mike', 'Mike@123', '123456789', '0', '1', '1'); +INSERT INTO Visitor (id, modificationCounter, username, name, password, phoneNumber, acceptedCommercial, +acceptedTerms, userType) VALUES (1, 1, 'peter@mail.com', 'Peter', 'Peter@123', '123456789', '1', '1', '0'); +INSERT INTO Visitor (id, modificationCounter, username, name, password, phoneNumber, acceptedCommercial, +acceptedTerms, userType) VALUES (2, 1, 'john@mail.com', 'John', 'John@123', '123456789', '1', '1', '0'); +INSERT INTO Visitor (id, modificationCounter, username, name, password, phoneNumber, acceptedCommercial, +acceptedTerms, userType) VALUES (3, 1, 'michael@mail.com', 'Michael', 'Mich@123', '123456789', '1', '1', '0'); +INSERT INTO Visitor (id, modificationCounter, username, name, password, phoneNumber, acceptedCommercial, +acceptedTerms, userType) VALUES (4, 1, 'maradona@mail.com', 'Maradona', 'Mara@123', '123456789', '1', '1', '0'); + +INSERT INTO Event (id, modificationCounter, +eventName, location, description, logo, attentionTime, +startDate,endDate,visitorCount) VALUES (1, 1, 'Rebecca','Banglore','Biggest Cultural Fest', null, '5 minutes', '2021-01-01 00:01:00','2021-02-01 00:01:00',0); +INSERT INTO Event (id, modificationCounter, +eventName, location, description, logo, attentionTime, +startDate,endDate,visitorCount) VALUES (2, 1, 'Reflexobeta','Kolkata','Biggest Food Fest', null, '5 minutes', '2021-01-01 00:01:00','2021-02-01 00:01:00',0); +INSERT INTO Event (id, modificationCounter, +eventName, location, description, logo, attentionTime, +startDate,endDate,visitorCount) VALUES (3, 1, 'Orkotan','Mumbai','Biggest Musical Fest', null, '5 minutes', '2021-01-01 00:01:00','2021-02-01 00:01:00',0); + + + diff --git a/backend/core/src/main/resources/static/index.html b/backend/core/src/main/resources/static/index.html new file mode 100644 index 0000000..88b7063 --- /dev/null +++ b/backend/core/src/main/resources/static/index.html @@ -0,0 +1,18 @@ + + + +Welcome + + +

Welcome

+ This is a test! +
+ Services Overview (CXF) +
+
+ +
+ +
+ + \ No newline at end of file diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/EventEntityBuilder.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/EventEntityBuilder.java new file mode 100644 index 0000000..10182ff --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/EventEntityBuilder.java @@ -0,0 +1,172 @@ +package com.devonfw.application.jtqbackend.common.api.builders; + +import java.sql.Timestamp; +import java.util.LinkedList; +import java.util.List; +import java.util.function.Consumer; + +import javax.persistence.EntityManager; + +import com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.EventEntity; + +/** + * Test data builder for EventEntity generated with cobigen. + */ +public class EventEntityBuilder { + + private List> parameterToBeApplied; + + /** + * The constructor. + */ + public EventEntityBuilder() { + + this.parameterToBeApplied = new LinkedList<>(); + fillMandatoryFields(); + fillMandatoryFields_custom(); + } + + /** + * @param eventName the eventName to add. + * @return the builder for fluent population of fields. + */ + public EventEntityBuilder eventName(final String eventName) { + + this.parameterToBeApplied.add(target -> target.setEventName(eventName)); + + return this; + } + + /** + * @param startDate the startDate to add. + * @return the builder for fluent population of fields. + */ + public EventEntityBuilder startDate(final Timestamp startDate) { + + this.parameterToBeApplied.add(target -> target.setStartDate(startDate)); + + return this; + } + + /** + * @param endDate the endDate to add. + * @return the builder for fluent population of fields. + */ + public EventEntityBuilder endDate(final Timestamp endDate) { + + this.parameterToBeApplied.add(target -> target.setEndDate(endDate)); + + return this; + } + + /** + * @param location the location to add. + * @return the builder for fluent population of fields. + */ + public EventEntityBuilder location(final String location) { + + this.parameterToBeApplied.add(target -> target.setLocation(location)); + + return this; + } + + /** + * @param description the description to add. + * @return the builder for fluent population of fields. + */ + public EventEntityBuilder description(final String description) { + + this.parameterToBeApplied.add(target -> target.setDescription(description)); + + return this; + } + + /** + * @param logo the logo to add. + * @return the builder for fluent population of fields. + */ + public EventEntityBuilder logo(final String logo) { + + this.parameterToBeApplied.add(target -> target.setLogo(logo)); + + return this; + } + + /** + * @param attentionTime the attentionTime to add. + * @return the builder for fluent population of fields. + */ + public EventEntityBuilder attentionTime(final String attentionTime) { + + this.parameterToBeApplied.add(target -> target.setAttentionTime(attentionTime)); + + return this; + } + + /** + * @param visitorCount the visitorCount to add. + * @return the builder for fluent population of fields. + */ + public EventEntityBuilder visitorCount(final int visitorCount) { + + this.parameterToBeApplied.add(target -> target.setVisitorCount(visitorCount)); + + return this; + } + + /** + * @return the populated EventEntity. + */ + public EventEntity createNew() { + + EventEntity evententity = new EventEntity(); + for (Consumer parameter : this.parameterToBeApplied) { + parameter.accept(evententity); + } + return evententity; + } + + /** + * Might be enriched to users needs (will not be overwritten) + */ + private void fillMandatoryFields_custom() { + + } + + /** + * Fills all mandatory fields by default. (will be overwritten on re-generation) + */ + private void fillMandatoryFields() { + + } + + /** + * @param em the {@link EntityManager} + * @return the EventEntity + */ + public EventEntity persist(EntityManager em) { + + EventEntity evententity = createNew(); + em.persist(evententity); + return evententity; + } + + /** + * @param em the {@link EntityManager} + * @param quantity the quantity + * @return a list of EventEntity + */ + public List persistAndDuplicate(EntityManager em, int quantity) { + + List evententityList = new LinkedList<>(); + for (int i = 0; i < quantity; i++) { + EventEntity evententity = createNew(); + // TODO alter at least values with unique key constraints to prevent from exceptions while persisting + em.persist(evententity); + evententityList.add(evententity); + } + + return evententityList; + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/QueueDetailEntityBuilder.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/QueueDetailEntityBuilder.java new file mode 100644 index 0000000..8a40373 --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/QueueDetailEntityBuilder.java @@ -0,0 +1,163 @@ +package com.devonfw.application.jtqbackend.common.api.builders; + +import java.sql.Timestamp; +import java.util.LinkedList; +import java.util.List; +import java.util.function.Consumer; + +import javax.persistence.EntityManager; + +import com.devonfw.application.jtqbackend.eventmanagement.dataaccess.api.EventEntity; +import com.devonfw.application.jtqbackend.queuedetailmanagement.dataaccess.api.QueueDetailEntity; +import com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api.VisitorEntity; + +/** + * Test data builder for QueueDetailEntity generated with cobigen. + */ +public class QueueDetailEntityBuilder { + + private List> parameterToBeApplied; + + /** + * The constructor. + */ + public QueueDetailEntityBuilder() { + + this.parameterToBeApplied = new LinkedList<>(); + fillMandatoryFields(); + fillMandatoryFields_custom(); + } + + /** + * @param queueNumber the queueNumber to add. + * @return the builder for fluent population of fields. + */ + public QueueDetailEntityBuilder queueNumber(final String queueNumber) { + + this.parameterToBeApplied.add(target -> target.setQueueNumber(queueNumber)); + + return this; + } + + /** + * @param creationTime the creationTime to add. + * @return the builder for fluent population of fields. + */ + public QueueDetailEntityBuilder creationTime(final Timestamp creationTime) { + + this.parameterToBeApplied.add(target -> target.setCreationTime(creationTime)); + + return this; + } + + /** + * @param startTime the startTime to add. + * @return the builder for fluent population of fields. + */ + public QueueDetailEntityBuilder startTime(final Timestamp startTime) { + + this.parameterToBeApplied.add(target -> target.setStartTime(startTime)); + + return this; + } + + /** + * @param endTime the endTime to add. + * @return the builder for fluent population of fields. + */ + public QueueDetailEntityBuilder endTime(final Timestamp endTime) { + + this.parameterToBeApplied.add(target -> target.setEndTime(endTime)); + + return this; + } + + /** + * @param minEstimatedTime the minEstimatedTime to add. + * @return the builder for fluent population of fields. + */ + public QueueDetailEntityBuilder minEstimatedTime(final String minEstimatedTime) { + + this.parameterToBeApplied.add(target -> target.setMinEstimatedTime(minEstimatedTime)); + + return this; + } + + /** + * @param visitor the visitor to add. + * @return the builder for fluent population of fields. + */ + public QueueDetailEntityBuilder visitor(final VisitorEntity visitor) { + + this.parameterToBeApplied.add(target -> target.setVisitor(visitor)); + + return this; + } + + /** + * @param event the event to add. + * @return the builder for fluent population of fields. + */ + public QueueDetailEntityBuilder event(final EventEntity event) { + + this.parameterToBeApplied.add(target -> target.setEvent(event)); + + return this; + } + + /** + * @return the populated QueueDetailEntity. + */ + public QueueDetailEntity createNew() { + + QueueDetailEntity queuedetailentity = new QueueDetailEntity(); + for (Consumer parameter : this.parameterToBeApplied) { + parameter.accept(queuedetailentity); + } + return queuedetailentity; + } + + /** + * Might be enriched to users needs (will not be overwritten) + */ + private void fillMandatoryFields_custom() { + + } + + /** + * Fills all mandatory fields by default. (will be overwritten on re-generation) + */ + private void fillMandatoryFields() { + + } + + /** + * @param em the {@link EntityManager} + * @return the QueueDetailEntity + */ + public QueueDetailEntity persist(EntityManager em) { + + QueueDetailEntity queuedetailentity = createNew(); + em.persist(queuedetailentity); + return queuedetailentity; + } + + /** + * @param em the {@link EntityManager} + * @param quantity the quantity + * @return a list of QueueDetailEntity + */ + public List persistAndDuplicate(EntityManager em, int quantity) { + + List queuedetailentityList = new LinkedList<>(); + for (int i = 0; i < quantity; i++) { + QueueDetailEntity queuedetailentity = createNew(); + // TODO alter at least values with unique key constraints to prevent from exceptions while persisting + em.persist(queuedetailentity); + queuedetailentityList.add(queuedetailentity); + } + + return queuedetailentityList; + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/VisitorEntityBuilder.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/VisitorEntityBuilder.java new file mode 100644 index 0000000..e991eb3 --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/common/api/builders/VisitorEntityBuilder.java @@ -0,0 +1,160 @@ +package com.devonfw.application.jtqbackend.common.api.builders; + +import java.util.LinkedList; +import java.util.List; +import java.util.function.Consumer; + +import javax.persistence.EntityManager; + +import com.devonfw.application.jtqbackend.visitormanagement.dataaccess.api.VisitorEntity; + +/** + * Test data builder for VisitorEntity generated with cobigen. + */ +public class VisitorEntityBuilder { + + private List> parameterToBeApplied; + + /** + * The constructor. + */ + public VisitorEntityBuilder() { + + this.parameterToBeApplied = new LinkedList<>(); + fillMandatoryFields(); + fillMandatoryFields_custom(); + } + + /** + * @param username the username to add. + * @return the builder for fluent population of fields. + */ + public VisitorEntityBuilder username(final String username) { + + this.parameterToBeApplied.add(target -> target.setUsername(username)); + + return this; + } + + /** + * @param name the name to add. + * @return the builder for fluent population of fields. + */ + public VisitorEntityBuilder name(final String name) { + + this.parameterToBeApplied.add(target -> target.setName(name)); + + return this; + } + + /** + * @param phoneNumber the phoneNumber to add. + * @return the builder for fluent population of fields. + */ + public VisitorEntityBuilder phoneNumber(final String phoneNumber) { + + this.parameterToBeApplied.add(target -> target.setPhoneNumber(phoneNumber)); + + return this; + } + + /** + * @param password the password to add. + * @return the builder for fluent population of fields. + */ + public VisitorEntityBuilder password(final String password) { + + this.parameterToBeApplied.add(target -> target.setPassword(password)); + + return this; + } + + /** + * @param acceptedCommercial the acceptedCommercial to add. + * @return the builder for fluent population of fields. + */ + public VisitorEntityBuilder acceptedCommercial(final Boolean acceptedCommercial) { + + this.parameterToBeApplied.add(target -> target.setAcceptedCommercial(acceptedCommercial)); + + return this; + } + + /** + * @param acceptedTerms the acceptedTerms to add. + * @return the builder for fluent population of fields. + */ + public VisitorEntityBuilder acceptedTerms(final Boolean acceptedTerms) { + + this.parameterToBeApplied.add(target -> target.setAcceptedTerms(acceptedTerms)); + + return this; + } + + /** + * @param userType the userType to add. + * @return the builder for fluent population of fields. + */ + public VisitorEntityBuilder userType(final Boolean userType) { + + this.parameterToBeApplied.add(target -> target.setUserType(userType)); + + return this; + } + + /** + * @return the populated VisitorEntity. + */ + public VisitorEntity createNew() { + + VisitorEntity visitorentity = new VisitorEntity(); + for (Consumer parameter : this.parameterToBeApplied) { + parameter.accept(visitorentity); + } + return visitorentity; + } + + /** + * Might be enriched to users needs (will not be overwritten) + */ + private void fillMandatoryFields_custom() { + + } + + /** + * Fills all mandatory fields by default. (will be overwritten on re-generation) + */ + private void fillMandatoryFields() { + + } + + /** + * @param em the {@link EntityManager} + * @return the VisitorEntity + */ + public VisitorEntity persist(EntityManager em) { + + VisitorEntity visitorentity = createNew(); + em.persist(visitorentity); + return visitorentity; + } + + /** + * @param em the {@link EntityManager} + * @param quantity the quantity + * @return a list of VisitorEntity + */ + public List persistAndDuplicate(EntityManager em, int quantity) { + + List visitorentityList = new LinkedList<>(); + for (int i = 0; i < quantity; i++) { + VisitorEntity visitorentity = createNew(); + // TODO alter at least values with unique key constraints to prevent from exceptions while persisting + em.persist(visitorentity); + visitorentityList.add(visitorentity); + } + + return visitorentityList; + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/Devon4jPackageCheckTest.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/Devon4jPackageCheckTest.java new file mode 100644 index 0000000..39e5af7 --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/Devon4jPackageCheckTest.java @@ -0,0 +1,66 @@ +package com.devonfw.application.jtqbackend.general.common.base; + +import java.util.HashSet; +import java.util.Set; + +import net.sf.mmm.util.reflect.api.ReflectionUtil; +import net.sf.mmm.util.reflect.base.ReflectionUtilImpl; + +import org.assertj.core.api.SoftAssertions; +import org.junit.jupiter.api.Test; + +import com.devonfw.module.basic.common.api.reflect.Devon4jPackage; +import com.devonfw.module.test.common.base.ModuleTest; + +/** + * This test verifies that the entire code of your code-base is located in {@link Devon4jPackage#isValid() valid Devon4j + * packages}. + */ +public class Devon4jPackageCheckTest extends ModuleTest { + + /** + * Scans all the packages of this application root pacakge namespace. Will verify that these are + * {@link Devon4jPackage#isValid() valid Devon4j packages}. + */ + @Test + public void testPackages() { + + Devon4jPackage pkg = Devon4jPackage.of(Devon4jPackageCheckTest.class); + assertThat(pkg.isValid()).isTrue(); + + ReflectionUtil ru = ReflectionUtilImpl.getInstance(); + Set classNames = ru.findClassNames(getRootPackage2Scan(pkg), true); + String appPackage = pkg.getRoot() + "." + pkg.getApplication(); + Set packages = new HashSet<>(128); + packages.add(appPackage); // allow SpringBootApp, etc. in application package + SoftAssertions assertion = new SoftAssertions(); + for (String className : classNames) { + int lastDot = className.lastIndexOf('.'); + if (lastDot > 0) { + String packageName = className.substring(0, lastDot); + boolean added = packages.add(packageName); + if (added) { + pkg = Devon4jPackage.of(packageName); + if (!pkg.isValid()) { + assertion.assertThat(pkg.isValid()) + .as("package " + packageName + " is invalid (component: " + pkg.getComponent() + ", layer: " + + pkg.getLayer() + ", scope: " + pkg.getScope() + "). Hint contains e.g. " + + className.substring(lastDot + 1)) + .isTrue(); + } + } + } + } + assertion.assertAll(); + } + + /** + * @param pkg the {@link Devon4jPackage} of this test. + * @return the root package to scan for {@link Class}es to get the actual packages to check. + */ + protected String getRootPackage2Scan(Devon4jPackage pkg) { + + return pkg.getRoot() + "." + pkg.getApplication(); + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/PermissionCheckTest.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/PermissionCheckTest.java new file mode 100644 index 0000000..4b699ac --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/PermissionCheckTest.java @@ -0,0 +1,67 @@ +package com.devonfw.application.jtqbackend.general.common.base; + +import com.devonfw.module.test.common.base.ModuleTest; + +import java.lang.reflect.Method; +import java.util.Set; + +import javax.annotation.security.DenyAll; +import javax.annotation.security.PermitAll; +import javax.annotation.security.RolesAllowed; + +import net.sf.mmm.util.filter.api.Filter; +import net.sf.mmm.util.reflect.api.ReflectionUtil; +import net.sf.mmm.util.reflect.base.ReflectionUtilImpl; + +import org.assertj.core.api.SoftAssertions; +import org.junit.jupiter.api.Test; + +/** + * Tests the permission check in logic layer. + */ +public class PermissionCheckTest extends ModuleTest { + + /** + * Check if all relevant methods in use case implementations have permission checks i.e. {@link RolesAllowed}, + * {@link DenyAll} or {@link PermitAll} annotation is applied. This is only checked for methods that are declared in + * the corresponding interface and thus have the {@link Override} annotations applied. + */ + @Test + public void permissionCheckAnnotationPresent() { + + String packageName = "com.devonfw.application.jtqbackend"; + Filter filter = new Filter() { + + @Override + public boolean accept(String value) { + + return value.contains(".logic.impl.usecase.Uc") && value.endsWith("Impl"); + } + + }; + ReflectionUtil ru = ReflectionUtilImpl.getInstance(); + Set classNames = ru.findClassNames(packageName, true, filter); + Set> classes = ru.loadClasses(classNames); + SoftAssertions assertions = new SoftAssertions(); + for (Class clazz : classes) { + Method[] methods = clazz.getDeclaredMethods(); + for (Method method : methods) { + Method parentMethod = ru.getParentMethod(method); + if (parentMethod != null) { + Class declaringClass = parentMethod.getDeclaringClass(); + if (declaringClass.isInterface() && declaringClass.getSimpleName().startsWith("Uc")) { + boolean hasAnnotation = false; + if (method.getAnnotation(RolesAllowed.class) != null || method.getAnnotation(DenyAll.class) != null + || method.getAnnotation(PermitAll.class) != null) { + hasAnnotation = true; + } + assertions.assertThat(hasAnnotation) + .as("Method " + method.getName() + " in Class " + clazz.getSimpleName() + " is missing access control") + .isTrue(); + } + } + } + } + assertions.assertAll(); + } +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/ApplicationComponentTest.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/ApplicationComponentTest.java new file mode 100644 index 0000000..99dd865 --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/ApplicationComponentTest.java @@ -0,0 +1,22 @@ +package com.devonfw.application.jtqbackend.general.common.base.test; + +import com.devonfw.module.test.common.base.ComponentTest; + +import com.devonfw.application.jtqbackend.SpringBootApp; + +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; + +/** + * Abstract base class for {@link ComponentTest}s of this application. + */ +@SpringBootTest(classes = { SpringBootApp.class }, webEnvironment = WebEnvironment.MOCK) +public abstract class ApplicationComponentTest extends ComponentTest { + + @Override + protected void doTearDown() { + super.doTearDown(); + TestUtil.logout(); + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/ApplicationSubsystemTest.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/ApplicationSubsystemTest.java new file mode 100644 index 0000000..a93601c --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/ApplicationSubsystemTest.java @@ -0,0 +1,16 @@ +package com.devonfw.application.jtqbackend.general.common.base.test; + +import com.devonfw.module.test.common.base.SubsystemTest; + +import com.devonfw.application.jtqbackend.SpringBootApp; + +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; + +/** + * Abstract base class for {@link SubsystemTest}s of this application. + */ +@SpringBootTest(classes = { SpringBootApp.class }, webEnvironment = WebEnvironment.RANDOM_PORT) +public abstract class ApplicationSubsystemTest extends SubsystemTest { + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/DbTestHelper.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/DbTestHelper.java new file mode 100644 index 0000000..c839ad6 --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/DbTestHelper.java @@ -0,0 +1,44 @@ +package com.devonfw.application.jtqbackend.general.common.base.test; + +import javax.inject.Named; + +import org.flywaydb.core.Flyway; + +/** + * This class provides methods for handling the database during testing where resets (and other operations) may be + * necessary. + */ +@Named +public class DbTestHelper { + + private Flyway flyway; + + /** + * The constructor. + * + * @param flyway an instance of type {@link Flyway}. + */ + public DbTestHelper(Flyway flyway) { + super(); + this.flyway = flyway; + } + + /** + * Drops the whole database. + */ + public void dropDatabase() { + + this.flyway.clean(); + } + + /** + * Calls {@link #dropDatabase()} internally, and migrates to the highest available migration (default) or to the + * {@code migrationVersion} specified by {@link #setMigrationVersion(String)}. + */ + public void resetDatabase() { + + dropDatabase(); + this.flyway.migrate(); + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/TestUtil.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/TestUtil.java new file mode 100644 index 0000000..08f6103 --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/TestUtil.java @@ -0,0 +1,29 @@ +package com.devonfw.application.jtqbackend.general.common.base.test; + +import org.springframework.security.authentication.TestingAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; + +/** + * This is a utility for testing. It allows to simulate authentication for component testing. + */ +public class TestUtil { + + /** + * @param login the id of the user to run the test as. + * @param permissions the permissions for the test. + */ + public static void login(String login, String... permissions) { + + Authentication authentication = new TestingAuthenticationToken(login, login, permissions); + SecurityContextHolder.getContext().setAuthentication(authentication); + } + + /** + * Logs off any previously logged on user. + */ + public static void logout() { + + SecurityContextHolder.getContext().setAuthentication(null); + } +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/impl/config/TestDbConfig.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/impl/config/TestDbConfig.java new file mode 100644 index 0000000..3efa73a --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/impl/config/TestDbConfig.java @@ -0,0 +1,35 @@ +package com.devonfw.application.jtqbackend.general.common.impl.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import com.devonfw.module.test.common.base.clean.TestCleaner; +import com.devonfw.module.test.common.base.clean.TestCleanerImpl; +import com.devonfw.module.test.common.base.clean.TestCleanerPlugin; +import com.devonfw.module.test.common.base.clean.TestCleanerPluginFlyway; + +/** + * {@link Configuration} for Database in JUnit tests. + */ +@Configuration +public class TestDbConfig { + + /** + * @return the {@link TestCleaner}. + */ + @Bean + public TestCleaner testCleaner() { + + return new TestCleanerImpl(); + } + + /** + * @return the {@link TestCleanerPluginFlyway}. + */ + @Bean + public TestCleanerPlugin testCleanerPluginFlyway() { + + return new TestCleanerPluginFlyway(); + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/impl/config/TestWebSecurityConfig.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/impl/config/TestWebSecurityConfig.java new file mode 100644 index 0000000..86b4e55 --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/common/impl/config/TestWebSecurityConfig.java @@ -0,0 +1,54 @@ +package com.devonfw.application.jtqbackend.general.common.impl.config; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint; +import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; + +import com.devonfw.application.jtqbackend.general.service.impl.config.BaseWebSecurityConfig; +import com.devonfw.module.basic.common.api.config.SpringProfileConstants; + +/** + * This type provides web security configuration for testing purposes. + */ +@Configuration +@EnableWebSecurity +@Profile(SpringProfileConstants.JUNIT) +public class TestWebSecurityConfig extends BaseWebSecurityConfig { + private static Logger LOG = LoggerFactory.getLogger(TestWebSecurityConfig.class); + + /** + * Configure spring security to enable a simple webform-login + a simple rest login. + */ + @Override + public void configure(HttpSecurity http) throws Exception { + + super.configure(http); + http.addFilterBefore(basicAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class); + + // Disable CSRF protection in tests for simpler testing of REST services + http.csrf().disable(); + LOG.debug("*** CSRF disabled - this config should only be used in development environment ***"); + } + + /** + * @return {@link BasicAuthenticationFilter}. + * @throws Exception on initialization error. + */ + @Bean + protected BasicAuthenticationFilter basicAuthenticationFilter() throws Exception { + + AuthenticationEntryPoint authenticationEntryPoint = new BasicAuthenticationEntryPoint(); + BasicAuthenticationFilter basicAuthenticationFilter = + new BasicAuthenticationFilter(authenticationManagerBean(), authenticationEntryPoint); + return basicAuthenticationFilter; + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/service/base/test/RestServiceTest.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/service/base/test/RestServiceTest.java new file mode 100644 index 0000000..963f78c --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/general/service/base/test/RestServiceTest.java @@ -0,0 +1,67 @@ +package com.devonfw.application.jtqbackend.general.service.base.test; + +import javax.inject.Inject; + +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; + +import com.devonfw.application.jtqbackend.SpringBootApp; +import com.devonfw.application.jtqbackend.general.common.base.test.DbTestHelper; +import com.devonfw.application.jtqbackend.general.common.base.test.TestUtil; + +import com.devonfw.module.test.common.base.SubsystemTest; +import com.devonfw.module.test.common.base.SubsystemDbTest; +import com.devonfw.module.service.common.api.client.ServiceClientFactory; + +/** + * Abstract base class for {@link SubsystemTest}s which runs the tests within a local server.
+ *
+ * The local server's port is randomly assigned. + */ +@SpringBootTest(classes = { SpringBootApp.class }, webEnvironment = WebEnvironment.RANDOM_PORT) +public abstract class RestServiceTest extends SubsystemDbTest { + + /** + * The port of the web server during the test. + */ + @LocalServerPort + protected int port; + + @Inject + private ServiceClientFactory serviceClientFactory; + + @Inject + private DbTestHelper dbTestHelper; + + @Override + protected void doSetUp() { + + super.doSetUp(); + } + + @Override + protected void doTearDown() { + + super.doTearDown(); + TestUtil.logout(); + } + + /** + * @return the {@link DbTestHelper} + */ + protected DbTestHelper getDbTestHelper() { + + return this.dbTestHelper; + } + + + /** + * @return the {@link ServiceClientFactory} + */ + protected ServiceClientFactory getServiceClientFactory() { + + return this.serviceClientFactory; + } + +} diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/queuedetailmanagement/QueueDetailTest.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/queuedetailmanagement/QueueDetailTest.java new file mode 100644 index 0000000..6b5b6bc --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/queuedetailmanagement/QueueDetailTest.java @@ -0,0 +1,86 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import com.devonfw.application.jtqbackend.SpringBootApp; +import com.devonfw.application.jtqbackend.eventmanagement.logic.api.to.EventEto; +import com.devonfw.application.jtqbackend.general.common.base.test.ApplicationComponentTest; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; + +/** + * @author azhussai + * + */ +@SpringBootTest(classes = SpringBootApp.class) +public class QueueDetailTest extends ApplicationComponentTest { + + @Test + public void testReturnVisitorCount() { + + EventEto eventEto = new EventEto(); + eventEto.setVisitorCount(4); + int expectedCount = eventEto.getVisitorCount(); + eventEto = returnVisitorCount(); + int actualCount = eventEto.getVisitorCount(); + // System.out.println(expectedCount + " " + actualCount); + + assertThat(actualCount).isEqualTo(expectedCount); + } + + @Test + public void testSaveQueueDetail() { + + QueueDetailEto queueDetailEto = new QueueDetailEto(); + queueDetailEto.setQueueNumber("Q001"); + + QueueDetailEto expectedQueueDetail = returnSavedDetail(); + + assertThat(queueDetailEto.getQueueNumber()).isEqualTo(expectedQueueDetail.getQueueNumber()); + } + + @Test + public void testVisitorInSaveQueueDetail() { + + QueueDetailEto queueDetailEto = new QueueDetailEto(); + queueDetailEto.setVisitorId((long) 1); + + QueueDetailEto expectedQueueDetail = returnSavedDetail(); + + assertThat(queueDetailEto.getVisitorId()).isEqualTo(expectedQueueDetail.getVisitorId()); + + } + + @Test + public void testEventInSaveQueueDetail() { + + QueueDetailEto queueDetailEto = new QueueDetailEto(); + queueDetailEto.setEventId((long) 4); + + QueueDetailEto expectedQueueDetail = returnSavedDetail(); + + assertThat(queueDetailEto.getEventId()).isEqualTo(expectedQueueDetail.getEventId()); + + } + + private QueueDetailEto returnSavedDetail() { + + QueueDetailEto queueDetail = new QueueDetailEto(); + queueDetail.setEventId((long) 4); + queueDetail.setQueueNumber("Q001"); + queueDetail.setVisitorId((long) 1); + return queueDetail; + } + + private EventEto returnVisitorCount() { + + EventEto eventEto = new EventEto(); + eventEto.setVisitorCount(4); + return eventEto; + } + + public void testDeleteQueueDetail() { + + } + +} \ No newline at end of file diff --git a/backend/core/src/test/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/QueueDetailTest.java b/backend/core/src/test/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/QueueDetailTest.java new file mode 100644 index 0000000..9be0f6e --- /dev/null +++ b/backend/core/src/test/java/com/devonfw/application/jtqbackend/queuedetailmanagement/logic/impl/QueueDetailTest.java @@ -0,0 +1,55 @@ +package com.devonfw.application.jtqbackend.queuedetailmanagement.logic.impl; + +import javax.inject.Inject; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import com.devonfw.application.jtqbackend.SpringBootApp; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.Queuedetailmanagement; +import com.devonfw.application.jtqbackend.queuedetailmanagement.logic.api.to.QueueDetailEto; +import com.devonfw.module.test.common.base.ComponentTest; + +/** + * @author azhussai + * + */ +@SpringBootTest(classes = SpringBootApp.class) +public class QueueDetailTest extends ComponentTest { + + @Inject + private Queuedetailmanagement queuedetailmanagement; + + @Test + public void saveQueueDetailTest() { + + QueueDetailEto queueDetailEto = new QueueDetailEto(); + + queueDetailEto.setCreationTime(null); + queueDetailEto.setEndTime(null); + queueDetailEto.setEventId(2l); + queueDetailEto.setVisitorId(2l); + + QueueDetailEto queueDetailEtoResult = this.queuedetailmanagement.saveQueueDetail(queueDetailEto); + assertThat(queueDetailEtoResult.getId()).isNotNull(); + assertThat(queueDetailEtoResult.getQueueNumber()).isEqualTo("Q001"); + assertThat(queueDetailEtoResult.getMinEstimatedTime()).isEqualTo("0 minutes"); + + } + + @Test + public void deleteQueueDetailTest() { + + QueueDetailEto queueDetailEto = new QueueDetailEto(); + + queueDetailEto.setCreationTime(null); + queueDetailEto.setEndTime(null); + queueDetailEto.setEventId(2l); + queueDetailEto.setVisitorId(2l); + + QueueDetailEto queueDetailEtoResult = this.queuedetailmanagement.saveQueueDetail(queueDetailEto); + + this.queuedetailmanagement.deleteQueueDetail(queueDetailEtoResult.getId()); + + } +} diff --git a/backend/core/src/test/resources/config/application.properties b/backend/core/src/test/resources/config/application.properties new file mode 100644 index 0000000..921492c --- /dev/null +++ b/backend/core/src/test/resources/config/application.properties @@ -0,0 +1,13 @@ +# This is the spring boot configuration file for JUnit tests. It will only affect JUnits and is not included into the application. +spring.profiles.active=junit + +# Database and JPA +spring.jpa.database=h2 +spring.datasource.url=jdbc:h2:mem:app; +spring.datasource.password= +spring.datasource.username=sa +spring.jpa.hibernate.ddl-auto=none + +# Flyway for Database Setup and Migrations +spring.flyway.enabled=true +spring.flyway.locations=classpath:db/migration diff --git a/backend/core/src/test/resources/db/test/V0001__InitDb.sql b/backend/core/src/test/resources/db/test/V0001__InitDb.sql new file mode 100644 index 0000000..2210438 --- /dev/null +++ b/backend/core/src/test/resources/db/test/V0001__InitDb.sql @@ -0,0 +1,2 @@ +-- Leave a large ID space reserved for master-data and test-data +CREATE SEQUENCE HIBERNATE_SEQUENCE START WITH 1000000; diff --git a/backend/pom.xml b/backend/pom.xml new file mode 100644 index 0000000..5c6ac24 --- /dev/null +++ b/backend/pom.xml @@ -0,0 +1,488 @@ + + + 4.0.0 + jtqbackend + com.devonfw.java.jtqbackend + 0.0.1 + pom + ${project.artifactId} + Application based on the devon4j. + + + 2.2.7.RELEASE + 2020.08.001 + 1.8 + 5.6.1 + UTF-8 + UTF-8 + 2.10.3 + 28.1-jre + system + + + + api + core + server + + + + + + + com.fasterxml.jackson + jackson-bom + ${jackson.version} + pom + import + + + + org.junit + junit-bom + ${junit.version} + pom + import + + + + com.google.guava + guava + ${guava.version} + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot.version} + pom + import + + + + com.devonfw.java.boms + devon4j-bom + ${devon4j.version} + pom + import + + + + + + + org.slf4j + slf4j-api + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${project.build.sourceEncoding} + ${java.version} + ${java.version} + + + + + maven-surefire-plugin + + ${devonfw.test.excluded.groups} + + + + + + org.jacoco + jacoco-maven-plugin + + + default-prepare-agent + + prepare-agent + + + + default-report + + report + + + + + + + + + org.apache.maven.plugins + maven-resources-plugin + 3.1.0 + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + org.apache.maven.plugins + maven-install-plugin + 2.5.2 + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + + org.apache.maven.plugins + maven-clean-plugin + 3.1.0 + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.2 + + + org.apache.maven.plugins + maven-source-plugin + 3.1.0 + + + org.apache.maven.plugins + maven-site-plugin + 3.7.1 + + + org.apache.maven.plugins + maven-checkstyle-plugin + 3.1.0 + + + org.apache.maven.plugins + maven-changes-plugin + 2.12.1 + + + org.apache.maven.plugins + maven-changelog-plugin + 2.3 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.0.0 + + + org.apache.maven.plugins + maven-jxr-plugin + 3.0.0 + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.1.1 + + + + true + protected + ${project.reporting.outputEncoding} + ${project.build.sourceEncoding} + true + ${user.dir}/src/main/javadoc/stylesheet.css + none + ${java.version} + JavaDocs for ${project.name} ${project.version} + JavaDocs for ${project.name} ${project.version} + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + ${basedir} + + + + org.apache.maven.plugins + maven-surefire-report-plugin + 2.22.2 + + + org.apache.maven.plugins + maven-pmd-plugin + 3.9.0 + + ${java.version} + + + + org.apache.maven.plugins + maven-war-plugin + 3.2.3 + + + org.apache.maven.plugins + maven-antrun-plugin + 1.8 + + + org.apache.maven.plugins + maven-help-plugin + 3.2.0 + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + org.apache.maven.plugins + maven-archetype-plugin + 3.1.2 + + + org.apache.maven.archetype + archetype-packaging + 3.1.2 + + + org.codehaus.mojo + taglist-maven-plugin + 2.4 + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + org.codehaus.mojo + flatten-maven-plugin + 1.2.2 + + + org.codehaus.mojo + license-maven-plugin + 1.20 + + ${project.build.directory}/generated-resources + true + true + true + true + + Apache Software License, Version 2.0|The Apache Software License, Version 2.0|Apache 2.0|Apache License, Version 2.0 + + + + + org.codehaus.mojo + servicedocgen-maven-plugin + 1.0.0-beta-3 + + + org.sonarsource.scanner.maven + sonar-maven-plugin + 3.7.0.1746 + + + org.jacoco + jacoco-maven-plugin + 0.8.5 + + + org.owasp + dependency-check-maven + 5.2.2 + + + com.github.spotbugs + spotbugs-maven-plugin + 3.1.12.2 + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + + + + + + + moduletest + + component,subsystem,system + + + + componenttest + + subsystem,system + + + + subsystemtest + + system + + + + systemtest + + none + + + + security + + + + org.owasp + dependency-check-maven + + 8 + + + + + check + + + + + + + + + licenses + + + + org.codehaus.mojo + license-maven-plugin + + + aggregate-add-third-party + generate-resources + + aggregate-add-third-party + + + + + aggregate-download-licenses + generate-resources + + aggregate-download-licenses + + + + + + + + + + eclipse + + + eclipse.application + + + + eclipse-target + + + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + + false + + + + org.apache.maven.plugins + maven-jxr-plugin + + + org.apache.maven.plugins + maven-javadoc-plugin + + + org.codehaus.mojo + taglist-maven-plugin + + + TODO + @todo + FIXME + @deprecated + REVIEW + + + + + org.owasp + dependency-check-maven + + false + + + + + aggregate + check + + + + + + org.codehaus.mojo + servicedocgen-maven-plugin + + + + ${servicedoc.info.title} + ${servicedoc.info.description} + + ${servicedoc.host} + ${servicedoc.port} + ${servicedoc.basePath} + + http + + + + + + org.codehaus.mojo + license-maven-plugin + + + + third-party-report + aggregate-third-party-report + + + + + + + + diff --git a/backend/server/pom.xml b/backend/server/pom.xml new file mode 100644 index 0000000..e1cdd08 --- /dev/null +++ b/backend/server/pom.xml @@ -0,0 +1,145 @@ + + + 4.0.0 + + com.devonfw.java.jtqbackend + jtqbackend + 0.0.1 + + jtqbackend-server + war + ${project.artifactId} + Server for the jtqbackend application - a simple example based on devon4j. + + + + ${project.groupId} + jtqbackend-core + ${project.version} + + + + com.devonfw.java.modules + devon4j-test-jpa + test + + + + + + jsclient + + + false + + + + + org.codehaus.mojo + exec-maven-plugin + + + npm-install + generate-sources + + exec + + + npm + + install + + ${js.client.dir} + + + + gulp-clean + generate-sources + + exec + + + gulp + + clean + + ${js.client.dir} + + + + gulp-build + generate-sources + + exec + + + gulp + + build:dist + + ${js.client.dir} + + + + gulp-test + test + + exec + + + gulp + + test + + ${js.client.dir} + + + + + + org.apache.maven.plugins + maven-war-plugin + + WEB-INF/classes/config/application.properties + ${project.artifactId} + false + + + + + + + + + + + ${project.basedir}/src/main/resources + + + ${js.client.dir}/dist + static + + + + + org.springframework.boot + spring-boot-maven-plugin + + com.devonfw.application.jtqbackend.SpringBootApp + bootified + ${project.artifactId} + + + + + repackage + + + + + + + + + diff --git a/backend/server/src/main/resources/logback.xml b/backend/server/src/main/resources/logback.xml new file mode 100644 index 0000000..b976927 --- /dev/null +++ b/backend/server/src/main/resources/logback.xml @@ -0,0 +1,32 @@ + + + + + + false + correlationId + + timestamp + [ignore] + [ignore] + +      {"appname":"jtqbackend"} + UTC + + + + + + + + + + + + + + + + + + diff --git a/backend/src/main/java/com/devonfw/application/jtqbackend/SpringBootBatchApp.java b/backend/src/main/java/com/devonfw/application/jtqbackend/SpringBootBatchApp.java new file mode 100644 index 0000000..e952d7d --- /dev/null +++ b/backend/src/main/java/com/devonfw/application/jtqbackend/SpringBootBatchApp.java @@ -0,0 +1,29 @@ +package com.devonfw.application.jtqbackend; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; +import org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; + +import com.devonfw.module.jpa.dataaccess.api.AdvancedRevisionEntity; + +/** + * {@link SpringBootApplication} for running this batch. + */ +@SpringBootApplication +@EntityScan(basePackages = { "com.devonfw.application.jtqbackend" }, basePackageClasses = { AdvancedRevisionEntity.class }) +public class SpringBootBatchApp { + + /** + * Entry point for spring-boot based app + * + * @param args - arguments + */ + public static void main(String[] args) { + + SpringApplication.run(SpringBootBatchApp.class, args); + } +} diff --git a/backend/src/main/java/com/devonfw/application/jtqbackend/general/batch/impl/config/BeansBatchConfig.java b/backend/src/main/java/com/devonfw/application/jtqbackend/general/batch/impl/config/BeansBatchConfig.java new file mode 100644 index 0000000..1eaa7e8 --- /dev/null +++ b/backend/src/main/java/com/devonfw/application/jtqbackend/general/batch/impl/config/BeansBatchConfig.java @@ -0,0 +1,193 @@ +package com.devonfw.application.jtqbackend.general.batch.impl.config; + +import javax.inject.Inject; +import javax.sql.DataSource; + +import org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor; +import org.springframework.batch.core.configuration.support.MapJobRegistry; +import org.springframework.batch.core.explore.support.JobExplorerFactoryBean; +import org.springframework.batch.core.launch.support.RunIdIncrementer; +import org.springframework.batch.core.launch.support.SimpleJobOperator; +import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; +import org.springframework.beans.factory.BeanCreationException; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.DependsOn; +import org.springframework.transaction.PlatformTransactionManager; + +/** + * This class contains the configuration like jobLauncher,Jobrepository etc. + */ +import com.devonfw.module.batch.common.impl.JobLauncherWithAdditionalRestartCapabilities; + +/** + * This class contains configuration of batch beans. + */ +@Configuration +public class BeansBatchConfig { + + private JobRepositoryFactoryBean jobRepository; + + private MapJobRegistry jobRegistry; + + private JobLauncherWithAdditionalRestartCapabilities jobLauncher; + + private JobExplorerFactoryBean jobExplorer; + + private DataSource dataSource; + + private PlatformTransactionManager transactionManager; + + @Value("ISOLATION_DEFAULT") + private String isolationLevelForCreate; + + /** + * This method is creating joboperator bean + * + * @return SimpleJobOperator + */ + @Bean + @DependsOn({ "jobRepository", "jobExplorer", "jobRegistry", "jobLauncher" }) + public SimpleJobOperator jobOperator() { + + SimpleJobOperator jobOperator = new SimpleJobOperator(); + try { + jobOperator.setJobExplorer(this.jobExplorer.getObject()); + } catch (Exception e) { + throw new BeanCreationException("Could not create BatchJobOperator", e); + } + + jobOperator.setJobLauncher(this.jobLauncher); + jobOperator.setJobRegistry(this.jobRegistry); + + try { + jobOperator.setJobRepository(this.jobRepository.getObject()); + } catch (Exception e) { + throw new BeanCreationException("Could not create BatchJobOperator", e); + } + + return jobOperator; + } + + /** + * This method is creating jobrepository + * + * @return JobRepositoryFactoryBean + */ + @Bean(name = "jobRepository") + public JobRepositoryFactoryBean jobRepository() { + + this.jobRepository = new JobRepositoryFactoryBean(); + this.jobRepository.setDataSource(this.dataSource); + this.jobRepository.setTransactionManager(this.transactionManager); + this.jobRepository.setIsolationLevelForCreate(this.isolationLevelForCreate); + return this.jobRepository; + } + + /** + * This method is creating jobLauncher bean + * + * @return SimpleJobLauncher + */ + @Bean + @DependsOn("jobRepository") + public JobLauncherWithAdditionalRestartCapabilities jobLauncher() { + + this.jobLauncher = new JobLauncherWithAdditionalRestartCapabilities(); + + try { + this.jobLauncher.setJobRepository(this.jobRepository.getObject()); + } catch (Exception e) { + throw new BeanCreationException("Could not create BatchJobOperator", e); + } + + return this.jobLauncher; + } + + /** + * This method is creating jobExplorer bean + * + * @return JobExplorerFactoryBean + */ + @Bean + @DependsOn("dataSource") + public JobExplorerFactoryBean jobExplorer() { + + this.jobExplorer = new JobExplorerFactoryBean(); + this.jobExplorer.setDataSource(this.dataSource); + return this.jobExplorer; + } + + /** + * This method is creating jobRegistry bean + * + * @return MapJobRegistry + */ + @Bean + public MapJobRegistry jobRegistry() { + + this.jobRegistry = new MapJobRegistry(); + return this.jobRegistry; + } + + /** + * This method is creating JobRegistryBeanPostProcessor + * + * @return JobRegistryBeanPostProcessor + */ + @Bean + @DependsOn("jobRegistry") + public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor() { + + JobRegistryBeanPostProcessor postProcessor = new JobRegistryBeanPostProcessor(); + postProcessor.setJobRegistry(this.jobRegistry); + return postProcessor; + } + + /** + * This method is creating incrementer + * + * @return RunIdIncrementer + */ + @Bean + public RunIdIncrementer incrementer() { + + return new RunIdIncrementer(); + } + + /** + * @return datasource + */ + public DataSource getDataSource() { + + return this.dataSource; + } + + /** + * @param datasource the datasource to set + */ + @Inject + public void setDataSource(DataSource datasource) { + + this.dataSource = datasource; + } + + /** + * @return transactionManager + */ + public PlatformTransactionManager getTransactionManager() { + + return this.transactionManager; + } + + /** + * @param transactionManager the transactionManager to set + */ + @Inject + public void setTransactionManager(PlatformTransactionManager transactionManager) { + + this.transactionManager = transactionManager; + } + +} diff --git a/backend/src/main/resources/db/migration/h2/V0005__Add_batch_tables.sql b/backend/src/main/resources/db/migration/h2/V0005__Add_batch_tables.sql new file mode 100644 index 0000000..980d37d --- /dev/null +++ b/backend/src/main/resources/db/migration/h2/V0005__Add_batch_tables.sql @@ -0,0 +1,81 @@ +-- Autogenerated: do not edit this file + +CREATE TABLE BATCH_JOB_INSTANCE ( + JOB_INSTANCE_ID BIGINT IDENTITY NOT NULL PRIMARY KEY , + VERSION BIGINT , + JOB_NAME VARCHAR(100) NOT NULL, + JOB_KEY VARCHAR(32) NOT NULL, + constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY) +) ; + +CREATE TABLE BATCH_JOB_EXECUTION ( + JOB_EXECUTION_ID BIGINT IDENTITY NOT NULL PRIMARY KEY , + VERSION BIGINT , + JOB_INSTANCE_ID BIGINT NOT NULL, + CREATE_TIME TIMESTAMP NOT NULL, + START_TIME TIMESTAMP DEFAULT NULL , + END_TIME TIMESTAMP DEFAULT NULL , + STATUS VARCHAR(10) , + EXIT_CODE VARCHAR(2500) , + EXIT_MESSAGE VARCHAR(2500) , + LAST_UPDATED TIMESTAMP, + JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, + constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) + references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) +) ; + +CREATE TABLE BATCH_JOB_EXECUTION_PARAMS ( + JOB_EXECUTION_ID BIGINT NOT NULL , + TYPE_CD VARCHAR(6) NOT NULL , + KEY_NAME VARCHAR(100) NOT NULL , + STRING_VAL VARCHAR(250) , + DATE_VAL TIMESTAMP DEFAULT NULL , + LONG_VAL BIGINT , + DOUBLE_VAL DOUBLE PRECISION , + IDENTIFYING CHAR(1) NOT NULL , + constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID) + references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID) +) ; + +CREATE TABLE BATCH_STEP_EXECUTION ( + STEP_EXECUTION_ID BIGINT IDENTITY NOT NULL PRIMARY KEY , + VERSION BIGINT NOT NULL, + STEP_NAME VARCHAR(100) NOT NULL, + JOB_EXECUTION_ID BIGINT NOT NULL, + START_TIME TIMESTAMP NOT NULL , + END_TIME TIMESTAMP DEFAULT NULL , + STATUS VARCHAR(10) , + COMMIT_COUNT BIGINT , + READ_COUNT BIGINT , + FILTER_COUNT BIGINT , + WRITE_COUNT BIGINT , + READ_SKIP_COUNT BIGINT , + WRITE_SKIP_COUNT BIGINT , + PROCESS_SKIP_COUNT BIGINT , + ROLLBACK_COUNT BIGINT , + EXIT_CODE VARCHAR(2500) , + EXIT_MESSAGE VARCHAR(2500) , + LAST_UPDATED TIMESTAMP, + constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID) + references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID) +) ; + +CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT ( + STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY, + SHORT_CONTEXT VARCHAR(2500) NOT NULL, + SERIALIZED_CONTEXT LONGVARCHAR , + constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID) + references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID) +) ; + +CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT ( + JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY, + SHORT_CONTEXT VARCHAR(2500) NOT NULL, + SERIALIZED_CONTEXT LONGVARCHAR , + constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID) + references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID) +) ; + +CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ; +CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ; +CREATE SEQUENCE BATCH_JOB_SEQ; diff --git a/backend/src/test/java/com/devonfw/application/jtqbackend/general/batch/base/test/SpringBatchIntegrationTest.java b/backend/src/test/java/com/devonfw/application/jtqbackend/general/batch/base/test/SpringBatchIntegrationTest.java new file mode 100644 index 0000000..a4cfa1f --- /dev/null +++ b/backend/src/test/java/com/devonfw/application/jtqbackend/general/batch/base/test/SpringBatchIntegrationTest.java @@ -0,0 +1,53 @@ +package com.devonfw.application.jtqbackend.general.batch.base.test; + +import javax.inject.Inject; + +import org.flywaydb.core.Flyway; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.batch.core.Job; +import org.springframework.batch.core.launch.JobLauncher; +import org.springframework.batch.test.JobLauncherTestUtils; + +import com.devonfw.application.jtqbackend.general.common.base.test.TestUtil; +import com.devonfw.module.test.common.base.ComponentTest; + +/** + * Base class for all spring batch integration tests. It helps to do End-to-End job tests. + */ +public abstract class SpringBatchIntegrationTest extends ComponentTest { + + @Inject + private JobLauncher jobLauncher; + + @Inject + private Flyway flyway; + + @Override + protected void doSetUp() { + + super.doSetUp(); + this.flyway.clean(); + this.flyway.migrate(); + } + + @Override + protected void doTearDown() { + + super.doTearDown(); + TestUtil.logout(); + } + + /** + * @param job job to configure + * @return jobLauncherTestUtils + */ + public JobLauncherTestUtils getJobLauncherTestUtils(Job job) { + + JobLauncherTestUtils jobLauncherTestUtils = new JobLauncherTestUtils(); + jobLauncherTestUtils.setJob(job); + jobLauncherTestUtils.setJobLauncher(this.jobLauncher); + + return jobLauncherTestUtils; + } +} diff --git a/backend/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/TestUtil.java b/backend/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/TestUtil.java new file mode 100644 index 0000000..08f6103 --- /dev/null +++ b/backend/src/test/java/com/devonfw/application/jtqbackend/general/common/base/test/TestUtil.java @@ -0,0 +1,29 @@ +package com.devonfw.application.jtqbackend.general.common.base.test; + +import org.springframework.security.authentication.TestingAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; + +/** + * This is a utility for testing. It allows to simulate authentication for component testing. + */ +public class TestUtil { + + /** + * @param login the id of the user to run the test as. + * @param permissions the permissions for the test. + */ + public static void login(String login, String... permissions) { + + Authentication authentication = new TestingAuthenticationToken(login, login, permissions); + SecurityContextHolder.getContext().setAuthentication(authentication); + } + + /** + * Logs off any previously logged on user. + */ + public static void logout() { + + SecurityContextHolder.getContext().setAuthentication(null); + } +} diff --git a/frontend/.browserslistrc b/frontend/.browserslistrc new file mode 100644 index 0000000..0ccadaf --- /dev/null +++ b/frontend/.browserslistrc @@ -0,0 +1,18 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR +not IE 9-10 # Angular support for IE 9-10 has been deprecated and will be removed as of Angular v11. To opt-in, remove the 'not' prefix on this line. +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/frontend/.editorconfig b/frontend/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/frontend/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..86d943a --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,46 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json +speed-measure-plugin*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/frontend/.vscode/launch.json b/frontend/.vscode/launch.json new file mode 100644 index 0000000..a6a8238 --- /dev/null +++ b/frontend/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "pwa-chrome", + "request": "launch", + "name": "Launch Chrome against localhost", + "url": "http://localhost:4200", + "webRoot": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..f7ba145 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,27 @@ +# Queue + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.2.0. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/frontend/angular.json b/frontend/angular.json new file mode 100644 index 0000000..9560e2b --- /dev/null +++ b/frontend/angular.json @@ -0,0 +1,129 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "queue": { + "projectType": "application", + "schematics": {}, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/queue", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "aot": true, + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css", + "node_modules/bootstrap/dist/css/bootstrap.min.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb", + "maximumError": "10kb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "queue:build" + }, + "configurations": { + "production": { + "browserTarget": "queue:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "queue:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "tsconfig.app.json", + "tsconfig.spec.json", + "e2e/tsconfig.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "queue:serve" + }, + "configurations": { + "production": { + "devServerTarget": "queue:serve:production" + } + } + } + } + } + }, + "defaultProject": "queue", + "cli": { + "analytics": "4f5375ca-7336-43fb-9564-15d5014b5325" + } +} \ No newline at end of file diff --git a/frontend/e2e/protractor.conf.js b/frontend/e2e/protractor.conf.js new file mode 100644 index 0000000..f238c0b --- /dev/null +++ b/frontend/e2e/protractor.conf.js @@ -0,0 +1,36 @@ +// @ts-check +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); + +/** + * @type { import("protractor").Config } + */ +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + browserName: 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ + spec: { + displayStacktrace: StacktraceOption.PRETTY + } + })); + } +}; \ No newline at end of file diff --git a/frontend/e2e/src/app.e2e-spec.ts b/frontend/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..fab7fd0 --- /dev/null +++ b/frontend/e2e/src/app.e2e-spec.ts @@ -0,0 +1,23 @@ +import { AppPage } from './app.po'; +import { browser, logging } from 'protractor'; + +describe('workspace-project App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getTitleText()).toEqual('queue app is running!'); + }); + + afterEach(async () => { + // Assert that there are no errors emitted from the browser + const logs = await browser.manage().logs().get(logging.Type.BROWSER); + expect(logs).not.toContain(jasmine.objectContaining({ + level: logging.Level.SEVERE, + } as logging.Entry)); + }); +}); diff --git a/frontend/e2e/src/app.po.ts b/frontend/e2e/src/app.po.ts new file mode 100644 index 0000000..b68475e --- /dev/null +++ b/frontend/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo(): Promise { + return browser.get(browser.baseUrl) as Promise; + } + + getTitleText(): Promise { + return element(by.css('app-root .content span')).getText() as Promise; + } +} diff --git a/frontend/e2e/tsconfig.json b/frontend/e2e/tsconfig.json new file mode 100644 index 0000000..426058e --- /dev/null +++ b/frontend/e2e/tsconfig.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es2018", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} diff --git a/frontend/karma.conf.js b/frontend/karma.conf.js new file mode 100644 index 0000000..e5da9e9 --- /dev/null +++ b/frontend/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, './coverage/queue'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..9895ada --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,13739 @@ +{ + "name": "queue", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1002.0.tgz", + "integrity": "sha512-twM8V03ujBIGVpgV1PBlSDodUdxtUb7WakutfWafAvEHUsgwzfvQz2VtKWvjNZ9AiYjnCuwkQaclqVv0VHNo9w==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-angular": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1002.0.tgz", + "integrity": "sha512-cPkdp1GceokGHc79Wg0hACMqqmnJ4W3H9kY4c9qp1Xz18b3vk1aq09JNawOpfUN09S9vBCnn4glg22lRyqmJNA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.0", + "@angular-devkit/build-optimizer": "0.1002.0", + "@angular-devkit/build-webpack": "0.1002.0", + "@angular-devkit/core": "10.2.0", + "@babel/core": "7.11.1", + "@babel/generator": "7.11.0", + "@babel/plugin-transform-runtime": "7.11.0", + "@babel/preset-env": "7.11.0", + "@babel/runtime": "7.11.2", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "10.2.0", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "css-loader": "4.2.2", + "cssnano": "4.1.10", + "file-loader": "6.0.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "jest-worker": "26.3.0", + "karma-source-map-support": "1.4.0", + "less-loader": "6.2.0", + "license-webpack-plugin": "2.3.0", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "0.10.0", + "minimatch": "3.0.4", + "open": "7.2.0", + "parse5": "6.0.1", + "parse5-htmlparser2-tree-adapter": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "4.0.1", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.26.5", + "rxjs": "6.6.2", + "sass": "1.26.10", + "sass-loader": "10.0.1", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.0.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "1.2.1", + "stylus": "0.54.8", + "stylus-loader": "3.0.2", + "terser": "5.3.0", + "terser-webpack-plugin": "4.1.0", + "tree-kill": "1.2.2", + "webpack": "4.44.1", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.2", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.4.1", + "worker-plugin": "5.0.0" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1002.0.tgz", + "integrity": "sha512-ACnm9doPMbRtSy1UZN5ir7smeLMx0g0oW7jX3jyPepeQKZ+9U1Bn09t10NLZQH+Z509jWZgvNJH/aOh85P6euw==", + "dev": true, + "requires": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.1", + "typescript": "4.0.2", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1002.0.tgz", + "integrity": "sha512-TLBBQ6ANOLKXOPxpCOnxAtoknwHA7XhsLuueN06w5qqF+QNNbWUMPoieKFGs2TnotfCgbiq6x57IDEZTyT6V0w==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.0", + "@angular-devkit/core": "10.2.0", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/core": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.2.0.tgz", + "integrity": "sha512-XAszFhSF3mZw1VjoOsYGbArr5NJLcStjOvcCGjBPl1UBM2AKpuCQXHxI9XJGYKL3B93Vp5G58d8qkHvamT53OA==", + "dev": true, + "requires": { + "ajv": "6.12.4", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.2", + "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.2.0.tgz", + "integrity": "sha512-TQI5NnE6iM3ChF5gZQ9qb+lZgMWa7aLoF5ksOyT3zrmOuICiQYJhA6SsjV95q7J4M55qYymwBib8KTqU/xuQww==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "ora": "5.0.0", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular/animations": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.2.2.tgz", + "integrity": "sha512-vxDbDeGggYeK5YXuBrzeZEO4nrZoQlJfgdUBGPNJmz97ZgX0sgjbmt3y/S7qupHNwdV4QExkaXRlGk0wcYuEqQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/cli": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.2.0.tgz", + "integrity": "sha512-YBzwkFBmG6CdUJk8onsPXxHX/ByU5MERBQgYhLC873e2nZlXMUu+Ttq2Wai6apyskGvsXKxZNPOQSFZTGKXzXg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.0", + "@angular-devkit/core": "10.2.0", + "@angular-devkit/schematics": "10.2.0", + "@schematics/angular": "10.2.0", + "@schematics/update": "0.1002.0", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.1.1", + "ini": "1.3.5", + "inquirer": "7.3.3", + "npm-package-arg": "8.0.1", + "npm-pick-manifest": "6.1.0", + "open": "7.2.0", + "pacote": "9.5.12", + "read-package-tree": "5.3.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "1.2.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true + } + } + }, + "@angular/common": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.2.tgz", + "integrity": "sha512-iV5kTGg7Xe79iih0RzulNFgDhyCgqpf0GC9MsWm663sYfeKaGmO0++O4FKCahE4N/++7thRMFgXy9PpSYDrFfg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.2.2.tgz", + "integrity": "sha512-62wb/aj8ORaUyVcI6cxf07gBc3/hb+bVGl9Yni51e8//G2W7gleyQAXtIeZsT9NHi0KX1nKdXvUVwAoq4u7eHw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler-cli": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.2.2.tgz", + "integrity": "sha512-Erbb7Rs5fo+7/gG1WPwtO5UfSq8qtBBucGu9da/HQLJdw5AO/5pKRl4PLQlxjSopsb8eRC+yVpt9OlCYaY2Chg==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "15.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", + "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "@angular/core": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.2.tgz", + "integrity": "sha512-9IHZF4/zcCKCLGzsbaUeNE8V+R9kcCu0ZNXvqkxd1+vTPdcf00185KzD6CAm+OiskLwvmrudh4vh0CQ+JHSTtQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/forms": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.2.2.tgz", + "integrity": "sha512-ATPMEvM1I/oEXn24qyHpgihYsXrXqnBXJkIGMFb4Tty2ay9xWDtV9aDknvd/7In1/SbHwcSdwhfJJ43apDB6yg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.2.2.tgz", + "integrity": "sha512-vxUKppRS5rIytzp8rV7pcqobopqBqSpXd5Rv/C5yVU9fTqg/hxbMPF8fRDITRqhArtuT7iT3Vv3TK+whqXTyNQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.2.2.tgz", + "integrity": "sha512-+Py/UhIOjsGvOozUFrCS/roAXLwSoE+moiJIxZkMrVVaRx/72P91bF3Zd17kYiXUGyEe7Im5NpXzWeK6y16oRg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/router": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.2.2.tgz", + "integrity": "sha512-jskLB4B3ccJS9YUFGgrR8JC6Ae31U1iw6gefh/S0xP742IxhgexxrxDUu/NAZkLV51sQ++snpnUK9DZU1kpXmA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz", + "integrity": "sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==", + "dev": true + }, + "@babel/core": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", + "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.1", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.0", + "@babel/types": "^7.11.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", + "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz", + "integrity": "sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", + "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", + "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.11.0", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/generator": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "@ngtools/webpack": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.2.0.tgz", + "integrity": "sha512-W4SSFNQhIiC8JRhIn3c4mb1+fsFKiHp+THVMAUNo+wRZEt/rgzsCdnqv0EmQJJojZhnilUIyB/wVYJu2+S/Bxg==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "enhanced-resolve": "4.3.0", + "webpack-sources": "1.4.3" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@schematics/angular": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.2.0.tgz", + "integrity": "sha512-rJRTTTL8CMMFb3ebCvAVHKHxuNzRqy/HtbXhJ82l5Xo/jXcm74eV2Q0RBUrNo1yBKWFIR+FIwiXLJaGcC/R9Pw==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "@angular-devkit/schematics": "10.2.0", + "jsonc-parser": "2.3.0" + } + }, + "@schematics/update": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1002.0.tgz", + "integrity": "sha512-g2bfJSAj3x/YL0GNhnHsDSQmO6DoxSnLxoFLqNN5+ukxK5jq7OZNDwMJGxZ3X6RcSMWKEkIKL/wlq9yhj2T/kw==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "@angular-devkit/schematics": "10.2.0", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + } + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", + "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "12.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz", + "integrity": "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.14.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.6.tgz", + "integrity": "sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001154", + "electron-to-chromium": "^1.3.585", + "escalade": "^3.1.1", + "node-releases": "^1.1.65" + } + }, + "browserstack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.0.tgz", + "integrity": "sha512-HJDJ0TSlmkwnt9RZ+v5gFpa1XZTBYTj0ywvLwJ3241J7vMw2jAsGNVhKHtmCOyg+VxeLZyaibO9UL71AsUeDIw==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001156", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001156.tgz", + "integrity": "sha512-z7qztybA2eFZTB6Z3yvaQBIoJpQtsewRD74adw2UbRWwsRq3jIPvgrQGawBMbfafekQaD21FWuXNcywtTDGGCw==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "requires": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + }, + "dependencies": { + "@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "requires": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "core-js-compat": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz", + "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==", + "dev": true, + "requires": { + "browserslist": "^4.14.6", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.2.2.tgz", + "integrity": "sha512-omVGsTkZPVwVRpckeUnLshPp12KsmMSLqYxs12+RzM9jRR5Y+Idn/tBffjXRvOE+qW7if24cuceFJqYR5FmGBg==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "^2.0.0" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.1.0.tgz", + "integrity": "sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg==", + "dev": true, + "requires": { + "css-tree": "^1.0.0" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0.tgz", + "integrity": "sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw==", + "dev": true, + "requires": { + "mdn-data": "2.0.12", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.12.tgz", + "integrity": "sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", + "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.591", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.591.tgz", + "integrity": "sha512-ol/0WzjL4NS4Kqy9VD6xXQON91xIihDT36sYCew/G/bnd1v0/4D+kahp26JauQhgFUjrdva3kRSo7URcUmQ+qw==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ws": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", + "dev": true + } + } + }, + "engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "requires": { + "colors": "1.4.0" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "jest-worker": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonc-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz", + "integrity": "sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz", + "integrity": "sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==", + "dev": true, + "requires": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.0.0", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "flatted": "^2.0.2", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.15", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.21", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "requires": { + "which": "^1.2.1" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "requires": { + "jasmine-core": "^3.6.0" + } + }, + "karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true + }, + "less": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", + "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "less-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.2.0.tgz", + "integrity": "sha512-Cl5h95/Pz/PWub/tCBgT1oNMFeH1WTD33piG80jn5jr12T4XbxZcjThwNXDQ7AG649WEynuIzO4b0+2Tn9Qolg==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "less": "^3.11.3", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "license-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-JK/DXrtN6UeYQSgkg5q1+pgJ8aiKPL9tnz9Wzw+Ikkf+8mJxG56x6t8O+OH/tAeF/5NREnelTEMyFtbJNkjH4w==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + } + }, + "loglevel": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", + "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.10.0.tgz", + "integrity": "sha512-QgKgJBjaJhxVPwrLNqqwNS0AGkuQQ31Hp4xGXEK/P7wehEg6qmNtReHKai3zRXqY60wGVWLYcOMJK2b98aGc3A==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "ngx-countdown": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ngx-countdown/-/ngx-countdown-11.0.0.tgz", + "integrity": "sha512-1ACzAkYExshs24D2RkHjX2iyP1DPhegHkLvr7o8fVhHD+7p7X5Ww08lpg9gpYUxLjSsz/txKATPAozXEx4717g==", + "requires": { + "tslib": "^2.0.0" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.66", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz", + "integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "npm-registry-fetch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.2.0.tgz", + "integrity": "sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, + "ora": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz", + "integrity": "sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pacote": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "dependencies": { + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "raw-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "dev": true, + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz", + "integrity": "sha512-rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.26.10", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.10.tgz", + "integrity": "sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.1.tgz", + "integrity": "sha512-b2PSldKVTS3JcFPHSrEXh3BeAfR7XknGiGCAO5aHruR3Pf3kqLP3Gb2ypXLglRrAzgZkloNxLZ7GXEGDX0hBUQ==", + "dev": true, + "requires": { + "klona": "^2.0.3", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-loader": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.2.tgz", + "integrity": "sha512-oX8d6ndRjN+tVyjj6PlXSyFPhDdVAPsZA30nD3/II8g4uOv8fCz0DMn5sy8KtVbDfKQxOpGwGJnK3xIW3tauDw==", + "dev": true, + "requires": { + "data-urls": "^2.0.0", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "style-loader": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "terser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", + "integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.3.0", + "p-limit": "^3.0.2", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^5.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + } + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "webpack": { + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", + "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", + "dev": true, + "requires": { + "webpack-sources": "^1.3.0" + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..4cd0993 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,48 @@ +{ + "name": "queue", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "~10.2.0", + "@angular/common": "~10.2.0", + "@angular/compiler": "~10.2.0", + "@angular/core": "~10.2.0", + "@angular/forms": "~10.2.0", + "@angular/platform-browser": "~10.2.0", + "@angular/platform-browser-dynamic": "~10.2.0", + "@angular/router": "~10.2.0", + "bootstrap": "^4.5.3", + "ngx-countdown": "^11.0.0", + "rxjs": "~6.6.0", + "tslib": "^2.0.0", + "zone.js": "~0.10.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1002.0", + "@angular/cli": "~10.2.0", + "@angular/compiler-cli": "~10.2.0", + "@types/node": "^12.11.1", + "@types/jasmine": "~3.5.0", + "@types/jasminewd2": "~2.0.3", + "codelyzer": "^6.0.0", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~5.0.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~4.0.2" + } +} diff --git a/frontend/src/app/app-routing.module.ts b/frontend/src/app/app-routing.module.ts new file mode 100644 index 0000000..fe83d66 --- /dev/null +++ b/frontend/src/app/app-routing.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { EventsComponent } from './events/events.component'; +import {JoinqueueComponent} from './joinqueue/joinqueue.component' +import { LoginComponent } from './login/login.component'; +import { RegisterComponent } from './register/register.component'; +import { ShowqueueComponent } from './showqueue/showqueue.component'; + + + + +const routes: Routes = [ + {path:'',component:EventsComponent}, + {path:'registration', component:RegisterComponent}, + {path:'login',component:LoginComponent}, + {path:'events',component:EventsComponent}, + {path:'joinqueue',component:JoinqueueComponent}, + {path:'showqueue',component:ShowqueueComponent}, +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/frontend/src/app/app.component.css b/frontend/src/app/app.component.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/app/app.component.html b/frontend/src/app/app.component.html new file mode 100644 index 0000000..d450a04 --- /dev/null +++ b/frontend/src/app/app.component.html @@ -0,0 +1,26 @@ + + + + \ No newline at end of file diff --git a/frontend/src/app/app.component.spec.ts b/frontend/src/app/app.component.spec.ts new file mode 100644 index 0000000..13606f0 --- /dev/null +++ b/frontend/src/app/app.component.spec.ts @@ -0,0 +1,35 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + RouterTestingModule + ], + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'queuemanagement'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('queuemanagement'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement; + expect(compiled.querySelector('.content span').textContent).toContain('queuemanagement app is running!'); + }); +}); diff --git a/frontend/src/app/app.component.ts b/frontend/src/app/app.component.ts new file mode 100644 index 0000000..5b05f3e --- /dev/null +++ b/frontend/src/app/app.component.ts @@ -0,0 +1,38 @@ +import { Component } from '@angular/core'; +import { Router } from '@angular/router'; +import { LogoutService } from './shared/services/logout/logout.service'; +import {AuthService} from './authentication/auth/auth.service'; + + + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'] +}) +export class AppComponent { + + isLoggedIn:boolean; + token:any; + constructor(public service:LogoutService, private router:Router,public authService:AuthService){ + + } + + + logout(){ + localStorage.removeItem('visitorLoggedIn'); + localStorage.removeItem('currentEvent'); + localStorage.removeItem('events'); + this.router.navigate(["/login"]); + } + + navbarOpen= false; + toggleNavbar(){ + this.navbarOpen=!this.navbarOpen; + } + + goToEvents(){ + this.router.navigate(['/events']); + } + } + diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts new file mode 100644 index 0000000..0c91e8a --- /dev/null +++ b/frontend/src/app/app.module.ts @@ -0,0 +1,44 @@ +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import {FormsModule} from '@angular/forms'; +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { LoginComponent } from './login/login.component'; +import { RegisterComponent } from './register/register.component'; +import { EventsComponent } from './events/events.component'; +import {JoinqueueComponent} from './joinqueue/joinqueue.component' +import { ShowqueueComponent } from './showqueue/showqueue.component'; + +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { CountdownModule } from 'ngx-countdown'; + + + + +@NgModule({ + declarations: [ + AppComponent, + LoginComponent, + RegisterComponent, + EventsComponent, + JoinqueueComponent, + ShowqueueComponent + ], + imports: [ + BrowserModule, + AppRoutingModule, + FormsModule, + HttpClientModule, + BrowserAnimationsModule, + CountdownModule + + ], + providers: [ + + ], + bootstrap: [AppComponent] +}) +export class AppModule { + +} diff --git a/frontend/src/app/authentication/auth/auth.service.spec.ts b/frontend/src/app/authentication/auth/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/frontend/src/app/authentication/auth/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/authentication/auth/auth.service.ts b/frontend/src/app/authentication/auth/auth.service.ts new file mode 100644 index 0000000..557c0cd --- /dev/null +++ b/frontend/src/app/authentication/auth/auth.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + + public logged = false; + constructor() { } + + public isLogged(): boolean { + return this.logged; + } + public setLogged(login: boolean): void { + this.logged = login; + } + +} diff --git a/frontend/src/app/events/events.component.css b/frontend/src/app/events/events.component.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/app/events/events.component.html b/frontend/src/app/events/events.component.html new file mode 100644 index 0000000..d9f2a34 --- /dev/null +++ b/frontend/src/app/events/events.component.html @@ -0,0 +1,20 @@ + +
+
+
+
+
+
{{event.eventName}}
+

{{event.description}}

+ Go To Event +
+
+
+
+
+ + + + + + diff --git a/frontend/src/app/events/events.component.spec.ts b/frontend/src/app/events/events.component.spec.ts new file mode 100644 index 0000000..4e47e46 --- /dev/null +++ b/frontend/src/app/events/events.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EventsComponent } from './events.component'; + +describe('EventsComponent', () => { + let component: EventsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ EventsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(EventsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/events/events.component.ts b/frontend/src/app/events/events.component.ts new file mode 100644 index 0000000..73fd2c3 --- /dev/null +++ b/frontend/src/app/events/events.component.ts @@ -0,0 +1,55 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import {Event, FilterQueueDetail, JoinCriteria, QueueDetail, Visitor} from '../shared/models/interface' +import { EventsService } from '../shared/services/events/events.service'; +import { IsJoinedQueueService } from '../shared/services/isJoinedQueue/is-joined-queue.service'; + + +@Component({ + selector: 'app-events', + templateUrl: './events.component.html', + styleUrls: ['./events.component.css'] +}) +export class EventsComponent implements OnInit { + + events:Array; + visitortoken:Visitor; + currentEvent:Event=new Event(); + queueDetail:QueueDetail=new QueueDetail(); + queueDetailFilter:FilterQueueDetail=new FilterQueueDetail; + constructor(private router:Router,private eventService:EventsService,private isJoinedQueueService:IsJoinedQueueService) { } + + + ngOnInit(): void { + this.eventService.getEvents().subscribe( + data=>{ + this.events=data.content; + localStorage.setItem("events",JSON.stringify(this.events)); + } + ) + } + +goToEvent(event:any){ + this.visitortoken=JSON.parse(localStorage.getItem('visitorLoggedIn')); + + if(this.visitortoken==null){ + this.router.navigate(['/login']); + }else{ + localStorage.setItem("currentEvent",JSON.stringify(event)); + this.router.navigate(['/joinqueue']); + } + + + } +} + + + + + + + + + + + diff --git a/frontend/src/app/joinqueue/joinqueue.component.css b/frontend/src/app/joinqueue/joinqueue.component.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/app/joinqueue/joinqueue.component.html b/frontend/src/app/joinqueue/joinqueue.component.html new file mode 100644 index 0000000..f8d85d1 --- /dev/null +++ b/frontend/src/app/joinqueue/joinqueue.component.html @@ -0,0 +1,14 @@ +
+
+
+

{{event.eventName}}



+
Currently available Queue
+

{{currentlyAvailableQueue}}


+ +
+
+


+
Go Back to Events
+ + + diff --git a/frontend/src/app/joinqueue/joinqueue.component.spec.ts b/frontend/src/app/joinqueue/joinqueue.component.spec.ts new file mode 100644 index 0000000..c710e2c --- /dev/null +++ b/frontend/src/app/joinqueue/joinqueue.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { JoinqueueComponent } from './joinqueue.component'; + +describe('JoinqueueComponent', () => { + let component: JoinqueueComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ JoinqueueComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(JoinqueueComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/joinqueue/joinqueue.component.ts b/frontend/src/app/joinqueue/joinqueue.component.ts new file mode 100644 index 0000000..e03a713 --- /dev/null +++ b/frontend/src/app/joinqueue/joinqueue.component.ts @@ -0,0 +1,50 @@ + +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; + +import { JoinCriteria, Event } from '../shared/models/interface'; +import { IsJoinedQueueService } from '../shared/services/isJoinedQueue/is-joined-queue.service'; +import { JoinqueueService } from '../shared/services/joinqueue/joinqueue.service'; + + +@Component({ + selector: 'app-joinqueue', + templateUrl: './joinqueue.component.html', + styleUrls: ['./joinqueue.component.css'] +}) +export class JoinqueueComponent implements OnInit { + currentlyAvailableQueue: string="Q123"; + constructor(private router:Router,private joinQueueService:JoinqueueService,private isjoinedQueueService:IsJoinedQueueService) { } + + + queueDetail:any; + criteria:JoinCriteria=new JoinCriteria(); + visitor:any; + event:Event=new Event(); + //eventJoined:Event=new Event(); + + ngOnInit(): void { + // if(this.isjoinedQueueService.isJoined){ + // this.router.navigate(['/showqueue']); + // } + this.event=JSON.parse(localStorage.getItem('currentEvent')); + this.visitor=JSON.parse(localStorage.getItem('visitorLoggedIn')); + } + + goBackToEvents(){ + + this.router.navigate(['/events']); + } + + joinQueue(){ + this.criteria.eventId=this.event.id; + this.criteria.visitorId=this.visitor.id; + this.joinQueueService.joinQueue(this.criteria).subscribe( + data=>{ + this.queueDetail=data; + localStorage.setItem('currentQueueDetail',JSON.stringify(this.queueDetail)); + this.router.navigate(['/showqueue']); + } + ) + } +} diff --git a/frontend/src/app/login/login.component.css b/frontend/src/app/login/login.component.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/app/login/login.component.html b/frontend/src/app/login/login.component.html new file mode 100644 index 0000000..01c78fa --- /dev/null +++ b/frontend/src/app/login/login.component.html @@ -0,0 +1,42 @@ + +
+
+
+
+

Login

+
+
+
+ {{msg}} +
+ + +
+ Email is required + Enter valid Email Id +
+
+
+ + +
+ Password is required + Password should have Minimum eight characters, one upper case, one lower case, one number and a special character. +
+
+ +
+
New User? Register Here!
+
+
+
+
+ + + + + diff --git a/frontend/src/app/login/login.component.spec.ts b/frontend/src/app/login/login.component.spec.ts new file mode 100644 index 0000000..d2c0e6c --- /dev/null +++ b/frontend/src/app/login/login.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LoginComponent } from './login.component'; + +describe('LoginComponent', () => { + let component: LoginComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ LoginComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(LoginComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/login/login.component.ts b/frontend/src/app/login/login.component.ts new file mode 100644 index 0000000..3a3fc3b --- /dev/null +++ b/frontend/src/app/login/login.component.ts @@ -0,0 +1,57 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { AuthService } from '../authentication/auth/auth.service'; +import { Visitor } from '../shared/models/interface'; +import { LoginService } from '../shared/services/login/login.service'; +import { LogoutService } from '../shared/services/logout/logout.service'; + +@Component({ + selector: 'app-login', + templateUrl: './login.component.html', + styleUrls: ['./login.component.css'] +}) +export class LoginComponent implements OnInit { + + loginVisitor:Visitor={}; + msg=""; + loginToken:string; + constructor(private router:Router, private service:LogoutService, private loginService:LoginService,public authService:AuthService) { } + + token: any; + ngOnInit(): void { + + + } + + loginSubmit(loginformValue): void { + // Checks if given username and password are the ones available in the database + this.loginService.getVisitorByUsername(loginformValue.username).subscribe( + (visitorFound) => { + if(visitorFound==null){ + this.msg="Email doesn't exist. Please register first!!" + } + else{ + if (visitorFound.username ===loginformValue.username && visitorFound.password ===loginformValue.password) { + this.loginVisitor.id=visitorFound.id; + this.loginVisitor.username=visitorFound.username; + this.loginVisitor.name=visitorFound.name; + this.loginVisitor.phoneNumber=visitorFound.phoneNumber; + this.loginVisitor.password=visitorFound.password; + this.loginVisitor.acceptedCommercial=visitorFound.acceptedCommercial; + this.loginVisitor.acceptedTerms=visitorFound.acceptedTerms; + this.loginVisitor.userType=visitorFound.userType; + localStorage.setItem('visitorLoggedIn', JSON.stringify(this.loginVisitor)); + this.router.navigate(['/events']); + + } + else{ + this.msg="Incorrect email id or password"; + } + } + } + + ) + + } + } + diff --git a/frontend/src/app/register/register.component.css b/frontend/src/app/register/register.component.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/app/register/register.component.html b/frontend/src/app/register/register.component.html new file mode 100644 index 0000000..ed8fd87 --- /dev/null +++ b/frontend/src/app/register/register.component.html @@ -0,0 +1,71 @@ + +
+
+
+
+

Register

+
+
+
+ {{message}} +
+ + +
+ Email is required + Enter valid Email Id +
+
+
+ + + Name is required +
+
+ + + +
+ Phone is required + Phone should be of 10 digits +
+
+
+ + +
+ Password is required + Password should have Minimum eight characters, one upper case, one lower case, one number and a special character. +
+
+
+ + + Password and Confirm Password must be same. +
+ +
+ + +
+
+ + +
+ +
+
+
+
+
+ + diff --git a/frontend/src/app/register/register.component.spec.ts b/frontend/src/app/register/register.component.spec.ts new file mode 100644 index 0000000..f6db869 --- /dev/null +++ b/frontend/src/app/register/register.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RegisterComponent } from './register.component'; + +describe('RegisterComponent', () => { + let component: RegisterComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ RegisterComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(RegisterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/register/register.component.ts b/frontend/src/app/register/register.component.ts new file mode 100644 index 0000000..e0f912d --- /dev/null +++ b/frontend/src/app/register/register.component.ts @@ -0,0 +1,59 @@ +import { Component, OnInit } from '@angular/core'; +import { NgForm } from '@angular/forms'; +import { Router } from '@angular/router'; +import { Visitor } from '../shared/models/interface' +import { LoginService } from '../shared/services/login/login.service'; +import { RegistrationService } from '../shared/services/registration/registration.service'; + +@Component({ + selector: 'app-register', + templateUrl: './register.component.html', + styleUrls: ['./register.component.css'] +}) +export class RegisterComponent implements OnInit { + + visitorResult: Visitor; + visitorToken:string; + message=""; + + constructor(private router:Router,private registrationService:RegistrationService,private loginService:LoginService) { } + + ngOnInit(): void { + + } + + register(formValue){ + const visitor:Visitor=new Visitor(); + visitor.username = formValue.username; + visitor.name =formValue.name; + visitor.phoneNumber = formValue.phone; + visitor.password = formValue.password; + visitor.acceptedCommercial = formValue.acceptedCommercial; + visitor.acceptedTerms = formValue.acceptedTerms; + visitor.userType = false; + + this.registrationService.registerVisitor(visitor).subscribe( + data=>{ + this.visitorResult=data; + this.visitorToken=localStorage.getItem(this.visitorResult.username) + if(this.visitorToken==null){ + localStorage.setItem(this.visitorResult.username,JSON.stringify(this.visitorResult)); + console.log("response recieved"); + this.router.navigate(["/login"]); + } + else{ + this.message="Visitor already exists" + } + }, + error=> console.log("Error Occurred") + + ) + + + + + + } + + +} diff --git a/frontend/src/app/shared/auth.service.spec.ts b/frontend/src/app/shared/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/frontend/src/app/shared/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/auth.service.ts b/frontend/src/app/shared/auth.service.ts new file mode 100644 index 0000000..4c2a71b --- /dev/null +++ b/frontend/src/app/shared/auth.service.ts @@ -0,0 +1,14 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + + constructor() { } + + authUser(User:any){ + let UserArray:[]; + // if(localStorage.getItem('Users')) + } +} diff --git a/frontend/src/app/shared/models/interface.ts b/frontend/src/app/shared/models/interface.ts new file mode 100644 index 0000000..c068399 --- /dev/null +++ b/frontend/src/app/shared/models/interface.ts @@ -0,0 +1,77 @@ +export class Visitor{ + id?:number; + username:string; + name:string; + phoneNumber:string; + password:string; + acceptedCommercial:boolean; + acceptedTerms:boolean; + userType: boolean; + + constructor(){ + + } +} + +export class FilterVisitor { + pageable: Pageable; + username?: string; + password?: string; +} + +export class Pageable { + pageSize: number; + pageNumber: number; + sort?: Sort[]; +} + +export class Sort { + property: string; + direction: string; +} + +export class Role { + name: string; + permission: number; + +} + +export class FilterQueueDetail { +visitorId?: Number; +eventId?: Number; +} + +export class JoinCriteria { +visitorId?: number; +eventId?: number; +} + +export class FilterEvent { +pageable: Pageable; +id?: number; +} +export class QueueDetail { +id?: number; +queueNumber: string; +creationTime: string; +startTime?: string; +endTime?: string; +minEstimatedTime:string; +visitorId: number; +eventId: number; +} + +export class Event { +id?: number; +eventName: string; +logo: string; +startDate:string; +endDate:string; +location:string; +description:string; +currentNumber: string; +attentionTime: string; +visitorCount:number; +isJoined:boolean; +} + diff --git a/frontend/src/app/shared/services/auth/auth.service.spec.ts b/frontend/src/app/shared/services/auth/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/frontend/src/app/shared/services/auth/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/auth/auth.service.ts b/frontend/src/app/shared/services/auth/auth.service.ts new file mode 100644 index 0000000..4c2a71b --- /dev/null +++ b/frontend/src/app/shared/services/auth/auth.service.ts @@ -0,0 +1,14 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + + constructor() { } + + authUser(User:any){ + let UserArray:[]; + // if(localStorage.getItem('Users')) + } +} diff --git a/frontend/src/app/shared/services/events/events.service.spec.ts b/frontend/src/app/shared/services/events/events.service.spec.ts new file mode 100644 index 0000000..162cd5c --- /dev/null +++ b/frontend/src/app/shared/services/events/events.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { EventsService } from './events.service'; + +describe('EventsService', () => { + let service: EventsService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(EventsService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/events/events.service.ts b/frontend/src/app/shared/services/events/events.service.ts new file mode 100644 index 0000000..7c288ae --- /dev/null +++ b/frontend/src/app/shared/services/events/events.service.ts @@ -0,0 +1,31 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from '@angular/common/http' +import { Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; +import { FilterEvent, FilterQueueDetail, JoinCriteria,Visitor } from '../../models/interface'; + + +@Injectable({ + providedIn: 'root' +}) +export class EventsService { + + eventId:number; + visitorId:number; + + private baseUrl=environment.baseUrlRestServices; + constructor(private http:HttpClient) { } + + + + + getEvents():Observable{ + + return this.http.post(`${this.baseUrl}` + '/eventmanagement/v1/event/search', {}) + +} + + + +} + diff --git a/frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.spec.ts b/frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.spec.ts new file mode 100644 index 0000000..8a464eb --- /dev/null +++ b/frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { IsJoinedQueueService } from './is-joined-queue.service'; + +describe('IsJoinedQueueService', () => { + let service: IsJoinedQueueService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(IsJoinedQueueService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.ts b/frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.ts new file mode 100644 index 0000000..ee8abd6 --- /dev/null +++ b/frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class IsJoinedQueueService { + + isJoined:boolean=false; + + constructor() { } +} diff --git a/frontend/src/app/shared/services/joinqueue/joinqueue.service.spec.ts b/frontend/src/app/shared/services/joinqueue/joinqueue.service.spec.ts new file mode 100644 index 0000000..0f7425d --- /dev/null +++ b/frontend/src/app/shared/services/joinqueue/joinqueue.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { JoinqueueService } from './joinqueue.service'; + +describe('JoinqueueService', () => { + let service: JoinqueueService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(JoinqueueService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/joinqueue/joinqueue.service.ts b/frontend/src/app/shared/services/joinqueue/joinqueue.service.ts new file mode 100644 index 0000000..1bf80ed --- /dev/null +++ b/frontend/src/app/shared/services/joinqueue/joinqueue.service.ts @@ -0,0 +1,20 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Router } from '@angular/router'; +import { Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; +import { JoinCriteria } from '../../models/interface'; + + +@Injectable({ + providedIn: 'root' +}) +export class JoinqueueService { + + private baseUrl=environment.baseUrlRestServices; + constructor(private http:HttpClient) { } + + joinQueue(criteria:JoinCriteria):Observable{ + return this.http.post(`${this.baseUrl}`+'/queuedetailmanagement/v1/queuedetail/',criteria) + } +} diff --git a/frontend/src/app/shared/services/login/login.service.spec.ts b/frontend/src/app/shared/services/login/login.service.spec.ts new file mode 100644 index 0000000..299b0d5 --- /dev/null +++ b/frontend/src/app/shared/services/login/login.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { LoginService } from './login.service'; + +describe('LoginService', () => { + let service: LoginService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(LoginService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/login/login.service.ts b/frontend/src/app/shared/services/login/login.service.ts new file mode 100644 index 0000000..64998c8 --- /dev/null +++ b/frontend/src/app/shared/services/login/login.service.ts @@ -0,0 +1,32 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { environment } from 'src/environments/environment'; +import { FilterVisitor, Pageable, Sort, Visitor } from '../../models/interface'; + +@Injectable({ + providedIn: 'root' +}) +export class LoginService { + + loginVisitor:Visitor=new Visitor(); + private baseUrl = environment.baseUrlRestServices; + constructor(private http:HttpClient) { } + + getVisitorByUsername(username: string): Observable { + const filters: FilterVisitor = new FilterVisitor(); + const pageable: Pageable = new Pageable(); + + pageable.pageNumber = 0; + pageable.pageSize = 10; + pageable.sort=[] + filters.username = username; + + return this.http.post(`${this.baseUrl}` + '/visitormanagement/v1/visitor/search', filters) + .pipe( + map(visitors => visitors['content'][0]), + ); +} +} + diff --git a/frontend/src/app/shared/services/logout.service.spec.ts b/frontend/src/app/shared/services/logout.service.spec.ts new file mode 100644 index 0000000..234af9d --- /dev/null +++ b/frontend/src/app/shared/services/logout.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { LogoutService } from './logout.service'; + +describe('LogoutService', () => { + let service: LogoutService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(LogoutService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/logout.service.ts b/frontend/src/app/shared/services/logout.service.ts new file mode 100644 index 0000000..5e27c87 --- /dev/null +++ b/frontend/src/app/shared/services/logout.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class LogoutService { + + isLoggedIn: boolean; + token:any; + constructor() { + + } + + isUserLoggedIn(){ + return !!localStorage.getItem('token');//checking whether token is present or not + } + + +} diff --git a/frontend/src/app/shared/services/logout/logout.service.spec.ts b/frontend/src/app/shared/services/logout/logout.service.spec.ts new file mode 100644 index 0000000..234af9d --- /dev/null +++ b/frontend/src/app/shared/services/logout/logout.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { LogoutService } from './logout.service'; + +describe('LogoutService', () => { + let service: LogoutService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(LogoutService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/logout/logout.service.ts b/frontend/src/app/shared/services/logout/logout.service.ts new file mode 100644 index 0000000..780961a --- /dev/null +++ b/frontend/src/app/shared/services/logout/logout.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class LogoutService { + + isLoggedIn: boolean; + token:any; + constructor() { + + } + + isUserLoggedIn(){ + return !!localStorage.getItem('visitorLoggedIn'); //checking whether logged in token is present or not + } + + +} diff --git a/frontend/src/app/shared/services/registration/registration.service.spec.ts b/frontend/src/app/shared/services/registration/registration.service.spec.ts new file mode 100644 index 0000000..5f3dfc3 --- /dev/null +++ b/frontend/src/app/shared/services/registration/registration.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { RegistrationService } from './registration.service'; + +describe('RegistrationService', () => { + let service: RegistrationService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(RegistrationService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/registration/registration.service.ts b/frontend/src/app/shared/services/registration/registration.service.ts new file mode 100644 index 0000000..7937988 --- /dev/null +++ b/frontend/src/app/shared/services/registration/registration.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; +import {HttpClient} from '@angular/common/http' +import { Visitor } from '../../models/interface'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class RegistrationService { + + private baseUrl=environment.baseUrlRestServices; + + constructor(private http:HttpClient) {} + + registerVisitor(visitor: Visitor): Observable { + return this.http.post(`${this.baseUrl}` + '/visitormanagement/v1/visitor', visitor); + } +} diff --git a/frontend/src/app/shared/services/showqueue/showqueue.service.spec.ts b/frontend/src/app/shared/services/showqueue/showqueue.service.spec.ts new file mode 100644 index 0000000..25e01cb --- /dev/null +++ b/frontend/src/app/shared/services/showqueue/showqueue.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ShowqueueService } from './showqueue.service'; + +describe('ShowqueueService', () => { + let service: ShowqueueService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ShowqueueService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/services/showqueue/showqueue.service.ts b/frontend/src/app/shared/services/showqueue/showqueue.service.ts new file mode 100644 index 0000000..560c6a6 --- /dev/null +++ b/frontend/src/app/shared/services/showqueue/showqueue.service.ts @@ -0,0 +1,19 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class ShowqueueService { + + private baseUrl=environment.baseUrlRestServices; + constructor(private http:HttpClient) { } + + + deleteQueue(queueDetailId:number):Observable{ + return this.http.delete(`${this.baseUrl}`+'/queuedetailmanagement/v1/queuedetail/'+queueDetailId); + + } +} diff --git a/frontend/src/app/showqueue/showqueue.component.css b/frontend/src/app/showqueue/showqueue.component.css new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/app/showqueue/showqueue.component.html b/frontend/src/app/showqueue/showqueue.component.html new file mode 100644 index 0000000..3ef994c --- /dev/null +++ b/frontend/src/app/showqueue/showqueue.component.html @@ -0,0 +1,16 @@ +
+
+
+

{{event.eventName}}



+

Your Position in Queue is:

{{queueDetail.queueNumber}}

+ +

Estimated remaining time for your turn is:

+

Currently attended Queue position number is:

{{currentlyAttendedQueueNumber}}


+ +
+
+

+
Go Back to Events
+ + + diff --git a/frontend/src/app/showqueue/showqueue.component.spec.ts b/frontend/src/app/showqueue/showqueue.component.spec.ts new file mode 100644 index 0000000..e7058b2 --- /dev/null +++ b/frontend/src/app/showqueue/showqueue.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ShowqueueComponent } from './showqueue.component'; + +describe('ShowqueueComponent', () => { + let component: ShowqueueComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ShowqueueComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ShowqueueComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/showqueue/showqueue.component.ts b/frontend/src/app/showqueue/showqueue.component.ts new file mode 100644 index 0000000..9ddf642 --- /dev/null +++ b/frontend/src/app/showqueue/showqueue.component.ts @@ -0,0 +1,43 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { ShowqueueService } from '../shared/services/showqueue/showqueue.service'; + +@Component({ + selector: 'app-showqueue', + templateUrl: './showqueue.component.html', + styleUrls: ['./showqueue.component.css'] +}) +export class ShowqueueComponent implements OnInit { + yourqueueNumber: any; + currentlyAttendedQueueNumber="Q001"; + minEstimatedTime:number; + event:any; + queueDetail:any; + + constructor(private router:Router,private showQueueService:ShowqueueService) { } + + + + ngOnInit(): void { + this.queueDetail=JSON.parse(localStorage.getItem('currentQueueDetail')); + this.event=JSON.parse(localStorage.getItem('currentEvent')); + this.minEstimatedTime=parseInt(this.queueDetail.minEstimatedTime)*60; + + } + + goBackToEvents(){ + this.router.navigate(['/events']); + } + + leaveQueue(){ + this.showQueueService.deleteQueue(this.queueDetail.id).subscribe( + data=>{ + this.router.navigate(['/events']); + localStorage.removeItem('currentQueueDetail'); + localStorage.removeItem('currentEvent'); + } + + ) + } + +} diff --git a/frontend/src/assets/.gitkeep b/frontend/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/environments/environment.prod.ts b/frontend/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/frontend/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/frontend/src/environments/environment.ts b/frontend/src/environments/environment.ts new file mode 100644 index 0000000..d829c99 --- /dev/null +++ b/frontend/src/environments/environment.ts @@ -0,0 +1,18 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + + +export const environment:{production: boolean, baseUrlRestServices: string} = { + production: false, + baseUrlRestServices: 'http://localhost:8081/jtqbackend/services/rest' +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/frontend/src/favicon.ico b/frontend/src/favicon.ico new file mode 100644 index 0000000..997406a Binary files /dev/null and b/frontend/src/favicon.ico differ diff --git a/frontend/src/index.html b/frontend/src/index.html new file mode 100644 index 0000000..91e9951 --- /dev/null +++ b/frontend/src/index.html @@ -0,0 +1,14 @@ + + + + + Queue + + + + + + + + + diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000..c7b673c --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/frontend/src/polyfills.ts b/frontend/src/polyfills.ts new file mode 100644 index 0000000..03711e5 --- /dev/null +++ b/frontend/src/polyfills.ts @@ -0,0 +1,63 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/frontend/src/styles.css b/frontend/src/styles.css new file mode 100644 index 0000000..90d4ee0 --- /dev/null +++ b/frontend/src/styles.css @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/frontend/src/test.ts b/frontend/src/test.ts new file mode 100644 index 0000000..50193eb --- /dev/null +++ b/frontend/src/test.ts @@ -0,0 +1,25 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + (id: string): T; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/frontend/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..f69f654 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,20 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2015", + "module": "es2020", + "lib": [ + "es2018", + "dom" + ] + } +} diff --git a/frontend/tsconfig.spec.json b/frontend/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/frontend/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/frontend/tslint.json b/frontend/tslint.json new file mode 100644 index 0000000..277c8eb --- /dev/null +++ b/frontend/tslint.json @@ -0,0 +1,152 @@ +{ + "extends": "tslint:recommended", + "rulesDirectory": [ + "codelyzer" + ], + "rules": { + "align": { + "options": [ + "parameters", + "statements" + ] + }, + "array-type": false, + "arrow-return-shorthand": true, + "curly": true, + "deprecation": { + "severity": "warning" + }, + "eofline": true, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "import-spacing": true, + "indent": { + "options": [ + "spaces" + ] + }, + "max-classes-per-file": false, + "max-line-length": [ + true, + 140 + ], + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-empty": false, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-switch-case-fall-through": true, + "no-var-requires": false, + "object-literal-key-quotes": [ + true, + "as-needed" + ], + "quotemark": [ + true, + "single" + ], + "semicolon": { + "options": [ + "always" + ] + }, + "space-before-function-paren": { + "options": { + "anonymous": "never", + "asyncArrow": "always", + "constructor": "never", + "method": "never", + "named": "never" + } + }, + "typedef": [ + true, + "call-signature" + ], + "typedef-whitespace": { + "options": [ + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ] + }, + "variable-name": { + "options": [ + "ban-keywords", + "check-format", + "allow-pascal-case" + ] + }, + "whitespace": { + "options": [ + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type", + "check-typecast" + ] + }, + "component-class-suffix": true, + "contextual-lifecycle": true, + "directive-class-suffix": true, + "no-conflicting-lifecycle": true, + "no-host-metadata-property": true, + "no-input-rename": true, + "no-inputs-metadata-property": true, + "no-output-native": true, + "no-output-on-prefix": true, + "no-output-rename": true, + "no-outputs-metadata-property": true, + "template-banana-in-box": true, + "template-no-negated-async": true, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true, + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ] + } +} diff --git a/node_development/node_backend/.eslintrc.js b/node_development/node_backend/.eslintrc.js new file mode 100644 index 0000000..ab8444a --- /dev/null +++ b/node_development/node_backend/.eslintrc.js @@ -0,0 +1,27 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin', 'prettier'], + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + 'plugin:prettier/recommended', + 'prettier/@typescript-eslint', + ], + root: true, + env: { + node: true, + jest: true, + }, + rules: { + '@typescript-eslint/interface-name-prefix': 'error', + '@typescript-eslint/explicit-function-return-type': 'error', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + 'prettier/prettier': 'error', + }, +}; diff --git a/node_development/node_backend/.prettierrc b/node_development/node_backend/.prettierrc new file mode 100644 index 0000000..821dbb7 --- /dev/null +++ b/node_development/node_backend/.prettierrc @@ -0,0 +1,12 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "semi": true, + "printWidth": 120, + "tabWidth": 2, + "bracketSpacing": true, + "arrowParens": "avoid", + "endOfLine": "lf", + "quoteProps": "consistent", + "useTabs": false +} \ No newline at end of file diff --git a/node_development/node_backend/.vscode/extensions.json b/node_development/node_backend/.vscode/extensions.json new file mode 100644 index 0000000..ac9fdb3 --- /dev/null +++ b/node_development/node_backend/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["devonfw.devonfw-extension-pack"] +} diff --git a/node_development/node_backend/.vscode/settings.json b/node_development/node_backend/.vscode/settings.json new file mode 100644 index 0000000..e61ba6f --- /dev/null +++ b/node_development/node_backend/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "typescript.preferences.importModuleSpecifier": "relative", + "typescript.preferences.quoteStyle": "single", + "editor.formatOnSave": true +} diff --git a/node_development/node_backend/README.md b/node_development/node_backend/README.md new file mode 100644 index 0000000..9fe8812 --- /dev/null +++ b/node_development/node_backend/README.md @@ -0,0 +1,73 @@ +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Coverage +Discord +Backers on Open Collective +Sponsors on Open Collective + + Support us + +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Installation + +```bash +$ npm install +``` + +## Running the app + +```bash +# development +$ npm run start + +# watch mode +$ npm run start:dev + +# production mode +$ npm run start:prod +``` + +## Test + +```bash +# unit tests +$ npm run test + +# e2e tests +$ npm run test:e2e + +# test coverage +$ npm run test:cov +``` + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) + +## License + +Nest is [MIT licensed](LICENSE). diff --git a/node_development/node_backend/dist/app/app.controller.d.ts b/node_development/node_backend/dist/app/app.controller.d.ts new file mode 100644 index 0000000..3859d69 --- /dev/null +++ b/node_development/node_backend/dist/app/app.controller.d.ts @@ -0,0 +1,6 @@ +import { AppService } from './app.service'; +export declare class AppController { + private readonly appService; + constructor(appService: AppService); + getHello(): string; +} diff --git a/node_development/node_backend/dist/app/app.controller.js b/node_development/node_backend/dist/app/app.controller.js new file mode 100644 index 0000000..b3f35df --- /dev/null +++ b/node_development/node_backend/dist/app/app.controller.js @@ -0,0 +1,36 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppController = void 0; +const openapi = require("@nestjs/swagger"); +const common_1 = require("@nestjs/common"); +const app_service_1 = require("./app.service"); +let AppController = class AppController { + constructor(appService) { + this.appService = appService; + } + getHello() { + return this.appService.getHello(); + } +}; +__decorate([ + common_1.Get(), + openapi.ApiResponse({ status: 200, type: String }), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", String) +], AppController.prototype, "getHello", null); +AppController = __decorate([ + common_1.Controller(), + __metadata("design:paramtypes", [app_service_1.AppService]) +], AppController); +exports.AppController = AppController; +//# sourceMappingURL=app.controller.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/app.controller.js.map b/node_development/node_backend/dist/app/app.controller.js.map new file mode 100644 index 0000000..093e682 --- /dev/null +++ b/node_development/node_backend/dist/app/app.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.controller.js","sourceRoot":"","sources":["../../src/app/app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAiD;AACjD,+CAA2C;AAG3C,IAAa,aAAa,GAA1B,MAAa,aAAa;IACxB,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAGvD,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;CACF,CAAA;AAHC;IADC,YAAG,EAAE;;;;;6CAGL;AANU,aAAa;IADzB,mBAAU,EAAE;qCAE8B,wBAAU;GADxC,aAAa,CAOzB;AAPY,sCAAa"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/app.module.d.ts b/node_development/node_backend/dist/app/app.module.d.ts new file mode 100644 index 0000000..09cdb35 --- /dev/null +++ b/node_development/node_backend/dist/app/app.module.d.ts @@ -0,0 +1,2 @@ +export declare class AppModule { +} diff --git a/node_development/node_backend/dist/app/app.module.js b/node_development/node_backend/dist/app/app.module.js new file mode 100644 index 0000000..17f86ba --- /dev/null +++ b/node_development/node_backend/dist/app/app.module.js @@ -0,0 +1,26 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppModule = void 0; +const common_1 = require("@nestjs/common"); +const app_controller_1 = require("./app.controller"); +const app_service_1 = require("./app.service"); +const core_module_1 = require("./core/core.module"); +const event_module_1 = require("./event/event.module"); +const queue_detail_module_1 = require("./queue-detail/queue-detail.module"); +let AppModule = class AppModule { +}; +AppModule = __decorate([ + common_1.Module({ + imports: [core_module_1.CoreModule, event_module_1.EventModule, queue_detail_module_1.QueueDetailModule], + controllers: [app_controller_1.AppController], + providers: [app_service_1.AppService], + }) +], AppModule); +exports.AppModule = AppModule; +//# sourceMappingURL=app.module.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/app.module.js.map b/node_development/node_backend/dist/app/app.module.js.map new file mode 100644 index 0000000..34af4f4 --- /dev/null +++ b/node_development/node_backend/dist/app/app.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,oDAAgD;AAChD,uDAAmD;AACnD,4EAAuE;AAOvE,IAAa,SAAS,GAAtB,MAAa,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,eAAM,CAAC;QACN,OAAO,EAAE,CAAC,wBAAU,EAAE,0BAAW,EAAE,uCAAiB,CAAC;QACrD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/app.service.d.ts b/node_development/node_backend/dist/app/app.service.d.ts new file mode 100644 index 0000000..0496e79 --- /dev/null +++ b/node_development/node_backend/dist/app/app.service.d.ts @@ -0,0 +1,3 @@ +export declare class AppService { + getHello(): string; +} diff --git a/node_development/node_backend/dist/app/app.service.js b/node_development/node_backend/dist/app/app.service.js new file mode 100644 index 0000000..6aa29eb --- /dev/null +++ b/node_development/node_backend/dist/app/app.service.js @@ -0,0 +1,20 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AppService = void 0; +const common_1 = require("@nestjs/common"); +let AppService = class AppService { + getHello() { + return 'Hello World!'; + } +}; +AppService = __decorate([ + common_1.Injectable() +], AppService); +exports.AppService = AppService; +//# sourceMappingURL=app.service.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/app.service.js.map b/node_development/node_backend/dist/app/app.service.js.map new file mode 100644 index 0000000..ce94ee7 --- /dev/null +++ b/node_development/node_backend/dist/app/app.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.service.js","sourceRoot":"","sources":["../../src/app/app.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAG5C,IAAa,UAAU,GAAvB,MAAa,UAAU;IACrB,QAAQ;QACN,OAAO,cAAc,CAAC;IACxB,CAAC;CACF,CAAA;AAJY,UAAU;IADtB,mBAAU,EAAE;GACA,UAAU,CAItB;AAJY,gCAAU"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/auth.module.d.ts b/node_development/node_backend/dist/app/core/auth/auth.module.d.ts new file mode 100644 index 0000000..3f7dba9 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/auth.module.d.ts @@ -0,0 +1,2 @@ +export declare class AuthModule { +} diff --git a/node_development/node_backend/dist/app/core/auth/auth.module.js b/node_development/node_backend/dist/app/core/auth/auth.module.js new file mode 100644 index 0000000..3a274f5 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/auth.module.js @@ -0,0 +1,35 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AuthModule = void 0; +const common_1 = require("@nestjs/common"); +const jwt_1 = require("@nestjs/jwt"); +const passport_1 = require("@nestjs/passport"); +const auth_controller_1 = require("./controllers/auth.controller"); +const auth_service_1 = require("./services/auth.service"); +const jwt_strategy_1 = require("./strategies/jwt.strategy"); +const config_1 = require("@devon4node/config"); +let AuthModule = class AuthModule { +}; +AuthModule = __decorate([ + common_1.Module({ + imports: [ + passport_1.PassportModule.register({ defaultStrategy: 'jwt' }), + jwt_1.JwtModule.registerAsync({ + imports: [config_1.ConfigModule], + useFactory: (config) => config.values.jwtConfig, + inject: [config_1.ConfigService], + }), + ], + providers: [auth_service_1.AuthService, jwt_strategy_1.JwtStrategy], + exports: [auth_service_1.AuthService, passport_1.PassportModule], + controllers: [auth_controller_1.AuthController], + }) +], AuthModule); +exports.AuthModule = AuthModule; +//# sourceMappingURL=auth.module.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/auth.module.js.map b/node_development/node_backend/dist/app/core/auth/auth.module.js.map new file mode 100644 index 0000000..37a39d7 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/auth.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../src/app/core/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qCAAwC;AACxC,+CAAkD;AAClD,mEAA+D;AAC/D,0DAAsD;AACtD,4DAAwD;AACxD,+CAAiE;AAgBjE,IAAa,UAAU,GAAvB,MAAa,UAAU;CAAG,CAAA;AAAb,UAAU;IAbtB,eAAM,CAAC;QACN,OAAO,EAAE;YACP,yBAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACnD,eAAS,CAAC,aAAa,CAAC;gBACtB,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,UAAU,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;gBACtE,MAAM,EAAE,CAAC,sBAAa,CAAC;aACxB,CAAC;SACH;QACD,SAAS,EAAE,CAAC,0BAAW,EAAE,0BAAW,CAAC;QACrC,OAAO,EAAE,CAAC,0BAAW,EAAE,yBAAc,CAAC;QACtC,WAAW,EAAE,CAAC,gCAAc,CAAC;KAC9B,CAAC;GACW,UAAU,CAAG;AAAb,gCAAU"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.d.ts b/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.d.ts new file mode 100644 index 0000000..f03f55d --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.d.ts @@ -0,0 +1,10 @@ +import { User } from '../../user/model/entities/user.entity'; +import { AuthService } from '../services/auth.service'; +export declare class AuthController { + private readonly authService; + constructor(authService: AuthService); + login(user: User): Promise; + register(user: User): Promise; + getUsers(): Promise<[User[], number]>; + currentUser(user: User): User; +} diff --git a/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.js b/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.js new file mode 100644 index 0000000..3a9825a --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.js @@ -0,0 +1,83 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AuthController = void 0; +const openapi = require("@nestjs/swagger"); +const common_1 = require("@nestjs/common"); +const passport_1 = require("@nestjs/passport"); +const user_entity_1 = require("../../user/model/entities/user.entity"); +const auth_service_1 = require("../services/auth.service"); +const get_user_decorator_1 = require("../decorators/get-user.decorator"); +let AuthController = class AuthController { + constructor(authService) { + this.authService = authService; + } + async login(user) { + return this.authService.login(user); + } + async register(user) { + try { + const registered = await this.authService.register(user); + return registered; + } + catch (e) { + throw new common_1.BadRequestException(e.message); + } + } + async getUsers() { + return await this.authService.getUsers(); + } + currentUser(user) { + return user; + } +}; +__decorate([ + common_1.Post('login'), + common_1.HttpCode(200), + openapi.ApiResponse({ status: 200, type: require("../../user/model/entities/user.entity").User }), + __param(0, common_1.Body()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [user_entity_1.User]), + __metadata("design:returntype", Promise) +], AuthController.prototype, "login", null); +__decorate([ + common_1.Post('register'), + openapi.ApiResponse({ status: 201, type: require("../../user/model/entities/user.entity").User }), + __param(0, common_1.Body()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [user_entity_1.User]), + __metadata("design:returntype", Promise) +], AuthController.prototype, "register", null); +__decorate([ + common_1.Get('users'), + openapi.ApiResponse({ status: 200 }), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", Promise) +], AuthController.prototype, "getUsers", null); +__decorate([ + common_1.Get('currentuser'), + common_1.UseGuards(passport_1.AuthGuard()), + openapi.ApiResponse({ status: 200, type: require("../../user/model/entities/user.entity").User }), + __param(0, get_user_decorator_1.GetUser()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [user_entity_1.User]), + __metadata("design:returntype", user_entity_1.User) +], AuthController.prototype, "currentUser", null); +AuthController = __decorate([ + common_1.Controller('auth'), + __metadata("design:paramtypes", [auth_service_1.AuthService]) +], AuthController); +exports.AuthController = AuthController; +//# sourceMappingURL=auth.controller.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.js.map b/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.js.map new file mode 100644 index 0000000..b35a2cb --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/controllers/auth.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/controllers/auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAuG;AACvG,+CAA6C;AAC7C,uEAA6D;AAC7D,2DAAuD;AACvD,yEAA2D;AAG3D,IAAa,cAAc,GAA3B,MAAa,cAAc;IACzB,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAI,CAAC;IAG1D,KAAK,CAAC,KAAK,CAAS,IAAU;QAG5B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAGD,KAAK,CAAC,QAAQ,CAAS,IAAU;QAC/B,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzD,OAAO,UAAU,CAAC;SACnB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,4BAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SAC1C;IACH,CAAC;IAGD,KAAK,CAAC,QAAQ;QACZ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAID,WAAW,CAAY,IAAU;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA1BC;IAFC,aAAI,CAAC,OAAO,CAAC;IACb,iBAAQ,CAAC,GAAG,CAAC;kCAAJ,GAAG;IACA,WAAA,aAAI,EAAE,CAAA;;qCAAO,kBAAI;;2CAI7B;AAGD;IADC,aAAI,CAAC,UAAU,CAAC;;IACD,WAAA,aAAI,EAAE,CAAA;;qCAAO,kBAAI;;8CAOhC;AAGD;IADC,YAAG,CAAC,OAAO,CAAC;;;;;8CAGZ;AAID;IAFC,YAAG,CAAC,aAAa,CAAC;IAClB,kBAAS,CAAC,oBAAS,EAAE,CAAC;;IACV,WAAA,4BAAO,EAAE,CAAA;;qCAAO,kBAAI;oCAAG,kBAAI;iDAEvC;AA7BU,cAAc;IAD1B,mBAAU,CAAC,MAAM,CAAC;qCAEyB,0BAAW;GAD1C,cAAc,CA8B1B;AA9BY,wCAAc"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.d.ts b/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.d.ts new file mode 100644 index 0000000..7e1b4e7 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.d.ts @@ -0,0 +1 @@ +export declare const GetUser: (...dataOrPipes: unknown[]) => ParameterDecorator; diff --git a/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.js b/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.js new file mode 100644 index 0000000..7c836d4 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GetUser = void 0; +const common_1 = require("@nestjs/common"); +exports.GetUser = common_1.createParamDecorator((_data, ctx) => { + if (ctx.getType() === 'http') { + const request = ctx.switchToHttp().getRequest(); + return request.user; + } + return undefined; +}); +//# sourceMappingURL=get-user.decorator.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.js.map b/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.js.map new file mode 100644 index 0000000..98e8e49 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/decorators/get-user.decorator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"get-user.decorator.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/decorators/get-user.decorator.ts"],"names":[],"mappings":";;;AACA,2CAAwE;AAE3D,QAAA,OAAO,GAAG,6BAAoB,CAAC,CAAC,KAAc,EAAE,GAAqB,EAAE,EAAE;IACpF,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,IAAI,CAAC;KACrB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.d.ts b/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.d.ts new file mode 100644 index 0000000..dcff963 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.d.ts @@ -0,0 +1,2 @@ +import { CustomDecorator } from '@nestjs/common'; +export declare const Roles: (...roles: number[]) => CustomDecorator; diff --git a/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.js b/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.js new file mode 100644 index 0000000..6584c73 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Roles = void 0; +const common_1 = require("@nestjs/common"); +const Roles = (...roles) => common_1.SetMetadata('roles', roles); +exports.Roles = Roles; +//# sourceMappingURL=roles.decorator.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.js.map b/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.js.map new file mode 100644 index 0000000..af4d2d8 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/decorators/roles.decorator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"roles.decorator.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/decorators/roles.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA8D;AAEvD,MAAM,KAAK,GAAG,CAAC,GAAG,KAAe,EAA2B,EAAE,CAAC,oBAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAArF,QAAA,KAAK,SAAgF"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/guards/roles.guard.d.ts b/node_development/node_backend/dist/app/core/auth/guards/roles.guard.d.ts new file mode 100644 index 0000000..ea20d43 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/guards/roles.guard.d.ts @@ -0,0 +1,7 @@ +import { CanActivate, ExecutionContext } from '@nestjs/common'; +import { Reflector } from '@nestjs/core'; +export declare class RolesGuard implements CanActivate { + private readonly reflector; + constructor(reflector: Reflector); + canActivate(context: ExecutionContext): boolean; +} diff --git a/node_development/node_backend/dist/app/core/auth/guards/roles.guard.js b/node_development/node_backend/dist/app/core/auth/guards/roles.guard.js new file mode 100644 index 0000000..b1c6dc9 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/guards/roles.guard.js @@ -0,0 +1,36 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RolesGuard = void 0; +const common_1 = require("@nestjs/common"); +const core_1 = require("@nestjs/core"); +let RolesGuard = class RolesGuard { + constructor(reflector) { + this.reflector = reflector; + } + canActivate(context) { + const rol = this.reflector.get('roles', context.getHandler()) || + this.reflector.get('roles', context.getClass()); + if (!rol) { + return true; + } + const request = context.switchToHttp().getRequest(); + const user = request.user; + const hasRole = () => rol.includes(user.role); + return user !== undefined && user.role !== undefined && hasRole(); + } +}; +RolesGuard = __decorate([ + common_1.Injectable(), + __metadata("design:paramtypes", [core_1.Reflector]) +], RolesGuard); +exports.RolesGuard = RolesGuard; +//# sourceMappingURL=roles.guard.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/guards/roles.guard.js.map b/node_development/node_backend/dist/app/core/auth/guards/roles.guard.js.map new file mode 100644 index 0000000..17c030f --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/guards/roles.guard.js.map @@ -0,0 +1 @@ +{"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/guards/roles.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2E;AAC3E,uCAAyC;AAGzC,IAAa,UAAU,GAAvB,MAAa,UAAU;IACrB,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAErD,WAAW,CAAC,OAAyB;QACnC,MAAM,GAAG,GACP,IAAI,CAAC,SAAS,CAAC,GAAG,CAAW,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAW,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,IAAI,CAAC;SACb;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvD,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;IACpE,CAAC;CACF,CAAA;AAhBY,UAAU;IADtB,mBAAU,EAAE;qCAE6B,gBAAS;GADtC,UAAU,CAgBtB;AAhBY,gCAAU"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/model/login.dto.d.ts b/node_development/node_backend/dist/app/core/auth/model/login.dto.d.ts new file mode 100644 index 0000000..0e88770 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/login.dto.d.ts @@ -0,0 +1,5 @@ +import { User } from '../../user/model/entities/user.entity'; +export declare class LoginDTO implements Pick { + username: string; + password: string; +} diff --git a/node_development/node_backend/dist/app/core/auth/model/login.dto.js b/node_development/node_backend/dist/app/core/auth/model/login.dto.js new file mode 100644 index 0000000..fbbc73c --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/login.dto.js @@ -0,0 +1,31 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LoginDTO = void 0; +const openapi = require("@nestjs/swagger"); +const class_validator_1 = require("class-validator"); +class LoginDTO { + static _OPENAPI_METADATA_FACTORY() { + return { username: { required: true, type: () => String }, password: { required: true, type: () => String } }; + } +} +__decorate([ + class_validator_1.IsDefined(), + class_validator_1.IsString(), + __metadata("design:type", String) +], LoginDTO.prototype, "username", void 0); +__decorate([ + class_validator_1.IsDefined(), + class_validator_1.IsString(), + __metadata("design:type", String) +], LoginDTO.prototype, "password", void 0); +exports.LoginDTO = LoginDTO; +//# sourceMappingURL=login.dto.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/model/login.dto.js.map b/node_development/node_backend/dist/app/core/auth/model/login.dto.js.map new file mode 100644 index 0000000..a58b96e --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/login.dto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"login.dto.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/model/login.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,qDAAsD;AAEtD,MAAa,QAAQ;;;;CAOpB;AAJC;IAFC,2BAAS,EAAE;IACX,0BAAQ,EAAE;;0CACO;AAGlB;IAFC,2BAAS,EAAE;IACX,0BAAQ,EAAE;;0CACO;AANpB,4BAOC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/model/roles.enum.d.ts b/node_development/node_backend/dist/app/core/auth/model/roles.enum.d.ts new file mode 100644 index 0000000..73f2e14 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/roles.enum.d.ts @@ -0,0 +1,4 @@ +export declare enum roles { + USER = 0, + ADMIN = 1 +} diff --git a/node_development/node_backend/dist/app/core/auth/model/roles.enum.js b/node_development/node_backend/dist/app/core/auth/model/roles.enum.js new file mode 100644 index 0000000..4e06679 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/roles.enum.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.roles = void 0; +var roles; +(function (roles) { + roles[roles["USER"] = 0] = "USER"; + roles[roles["ADMIN"] = 1] = "ADMIN"; +})(roles = exports.roles || (exports.roles = {})); +//# sourceMappingURL=roles.enum.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/model/roles.enum.js.map b/node_development/node_backend/dist/app/core/auth/model/roles.enum.js.map new file mode 100644 index 0000000..978f5b5 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/roles.enum.js.map @@ -0,0 +1 @@ +{"version":3,"file":"roles.enum.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/model/roles.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,iCAAI,CAAA;IACJ,mCAAK,CAAA;AACP,CAAC,EAHW,KAAK,GAAL,aAAK,KAAL,aAAK,QAGhB"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/model/user-request.interface.d.ts b/node_development/node_backend/dist/app/core/auth/model/user-request.interface.d.ts new file mode 100644 index 0000000..acc8fb0 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/user-request.interface.d.ts @@ -0,0 +1,6 @@ +import { Request } from 'express'; +interface IUserRequest extends Request { + user: any; +} +export declare type UserRequest = IUserRequest; +export {}; diff --git a/node_development/node_backend/dist/app/core/auth/model/user-request.interface.js b/node_development/node_backend/dist/app/core/auth/model/user-request.interface.js new file mode 100644 index 0000000..17846d0 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/user-request.interface.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=user-request.interface.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/model/user-request.interface.js.map b/node_development/node_backend/dist/app/core/auth/model/user-request.interface.js.map new file mode 100644 index 0000000..3822f19 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/model/user-request.interface.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-request.interface.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/model/user-request.interface.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/services/auth.service.d.ts b/node_development/node_backend/dist/app/core/auth/services/auth.service.d.ts new file mode 100644 index 0000000..d8ac645 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/services/auth.service.d.ts @@ -0,0 +1,11 @@ +import { UserService } from '../../user/services/user.service'; +import { User } from '../../user/model/entities/user.entity'; +import { LoginDTO } from '../model/login.dto'; +export declare class AuthService { + private readonly usersService; + constructor(usersService: UserService); + validateUser(username: string, pass: string): Promise; + login(user: LoginDTO): Promise; + register(user: User): Promise; + getUsers(): Promise<[User[], number]>; +} diff --git a/node_development/node_backend/dist/app/core/auth/services/auth.service.js b/node_development/node_backend/dist/app/core/auth/services/auth.service.js new file mode 100644 index 0000000..aadc3be --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/services/auth.service.js @@ -0,0 +1,47 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AuthService = void 0; +const common_1 = require("@nestjs/common"); +const bcrypt_1 = require("bcrypt"); +const class_transformer_1 = require("class-transformer"); +const user_service_1 = require("../../user/services/user.service"); +let AuthService = class AuthService { + constructor(usersService) { + this.usersService = usersService; + } + async validateUser(username, pass) { + const user = await this.usersService.findOne(username); + if (user && (await bcrypt_1.compare(pass, user.password))) { + return class_transformer_1.classToPlain(user); + } + return undefined; + } + async login(user) { + const payload = await this.validateUser(user.username, user.password); + if (!payload) { + throw new common_1.UnauthorizedException('Wrong username or password'); + } + return payload; + } + register(user) { + return this.usersService.registerUser(user); + } + getUsers() { + return this.usersService.getUsers(); + } +}; +AuthService = __decorate([ + common_1.Injectable(), + __metadata("design:paramtypes", [user_service_1.UserService]) +], AuthService); +exports.AuthService = AuthService; +//# sourceMappingURL=auth.service.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/services/auth.service.js.map b/node_development/node_backend/dist/app/core/auth/services/auth.service.js.map new file mode 100644 index 0000000..175a1e4 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/services/auth.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/services/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AACnE,mCAAiC;AACjC,yDAAiD;AACjD,mEAA+D;AAK/D,IAAa,WAAW,GAAxB,MAAa,WAAW;IAEtB,YAA6B,YAAyB;QAAzB,iBAAY,GAAZ,YAAY,CAAa;IAAI,CAAC;IAE3D,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,IAAY;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,IAAI,IAAI,CAAC,MAAM,gBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC,EAAE;YACjD,OAAO,gCAAY,CAAC,IAAI,CAAS,CAAC;SACnC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAc;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAS,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC;QAExE,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,8BAAqB,CAAC,4BAA4B,CAAC,CAAC;SAC/D;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,IAAU;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;CACF,CAAA;AA7BY,WAAW;IADvB,mBAAU,EAAE;qCAGgC,0BAAW;GAF3C,WAAW,CA6BvB;AA7BY,kCAAW"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.d.ts b/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.d.ts new file mode 100644 index 0000000..ae2198a --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.d.ts @@ -0,0 +1,10 @@ +import { Strategy } from 'passport-jwt'; +import { ConfigService } from '@devon4node/config'; +import { Config } from '../../../shared/model/config/config.model'; +declare const JwtStrategy_base: new (...args: any[]) => Strategy; +export declare class JwtStrategy extends JwtStrategy_base { + readonly configService: ConfigService; + constructor(configService: ConfigService); + validate(payload: any): Promise; +} +export {}; diff --git a/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.js b/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.js new file mode 100644 index 0000000..ded81c9 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.js @@ -0,0 +1,35 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JwtStrategy = void 0; +const common_1 = require("@nestjs/common"); +const passport_1 = require("@nestjs/passport"); +const passport_jwt_1 = require("passport-jwt"); +const config_1 = require("@devon4node/config"); +let JwtStrategy = class JwtStrategy extends passport_1.PassportStrategy(passport_jwt_1.Strategy) { + constructor(configService) { + super({ + jwtFromRequest: passport_jwt_1.ExtractJwt.fromAuthHeaderAsBearerToken(), + ignoreExpiration: false, + secretOrKey: configService.values.jwtConfig.secret, + }); + this.configService = configService; + } + async validate(payload) { + return payload; + } +}; +JwtStrategy = __decorate([ + common_1.Injectable(), + __metadata("design:paramtypes", [config_1.ConfigService]) +], JwtStrategy); +exports.JwtStrategy = JwtStrategy; +//# sourceMappingURL=jwt.strategy.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.js.map b/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.js.map new file mode 100644 index 0000000..0ee80c2 --- /dev/null +++ b/node_development/node_backend/dist/app/core/auth/strategies/jwt.strategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../../../../src/app/core/auth/strategies/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+CAAoD;AACpD,+CAAoD;AACpD,+CAAmD;AAInD,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,2BAAgB,CAAC,uBAAQ,CAAC;IACzD,YAA4B,aAAoC;QAC9D,KAAK,CAAC;YACJ,cAAc,EAAE,yBAAU,CAAC,2BAA2B,EAAE;YACxD,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;SACnD,CAAC,CAAC;QALuB,kBAAa,GAAb,aAAa,CAAuB;IAMhE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAY;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAZY,WAAW;IADvB,mBAAU,EAAE;qCAEgC,sBAAa;GAD7C,WAAW,CAYvB;AAZY,kCAAW"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/core.module.d.ts b/node_development/node_backend/dist/app/core/core.module.d.ts new file mode 100644 index 0000000..9f875c1 --- /dev/null +++ b/node_development/node_backend/dist/app/core/core.module.d.ts @@ -0,0 +1,2 @@ +export declare class CoreModule { +} diff --git a/node_development/node_backend/dist/app/core/core.module.js b/node_development/node_backend/dist/app/core/core.module.js new file mode 100644 index 0000000..08c9aec --- /dev/null +++ b/node_development/node_backend/dist/app/core/core.module.js @@ -0,0 +1,50 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CoreModule = void 0; +const common_1 = require("@nestjs/common"); +const serializer_1 = require("@devon4node/common/serializer"); +const core_1 = require("@nestjs/core"); +const winston_logger_1 = require("../shared/logger/winston.logger"); +const business_logic_filter_1 = require("../shared/filters/business-logic.filter"); +const config_1 = require("@devon4node/config"); +const config_model_1 = require("../shared/model/config/config.model"); +const typeorm_1 = require("@nestjs/typeorm"); +const auth_module_1 = require("./auth/auth.module"); +const user_module_1 = require("./user/user.module"); +let CoreModule = class CoreModule { +}; +CoreModule = __decorate([ + common_1.Global(), + common_1.Module({ + imports: [ + user_module_1.UserModule, + auth_module_1.AuthModule, + typeorm_1.TypeOrmModule.forRootAsync({ + imports: [config_1.ConfigModule], + useFactory: (config) => { + return config.values.database; + }, + inject: [config_1.ConfigService], + }), + config_1.ConfigModule.forRoot({ + configPrefix: 'devon4node', + configType: config_model_1.Config, + }), + ], + controllers: [], + providers: [ + { provide: core_1.APP_FILTER, useClass: business_logic_filter_1.BusinessLogicFilter }, + { provide: core_1.APP_INTERCEPTOR, useClass: serializer_1.ClassSerializerInterceptor }, + winston_logger_1.WinstonLogger, + ], + exports: [user_module_1.UserModule, auth_module_1.AuthModule, config_1.ConfigModule, winston_logger_1.WinstonLogger], + }) +], CoreModule); +exports.CoreModule = CoreModule; +//# sourceMappingURL=core.module.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/core.module.js.map b/node_development/node_backend/dist/app/core/core.module.js.map new file mode 100644 index 0000000..cbfa7e5 --- /dev/null +++ b/node_development/node_backend/dist/app/core/core.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../../src/app/core/core.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,8DAA2E;AAC3E,uCAA2D;AAC3D,oEAAgE;AAChE,mFAA8E;AAC9E,+CAAiE;AACjE,sEAA6D;AAC7D,6CAAgD;AAChD,oDAAgD;AAChD,oDAAgD;AA2BhD,IAAa,UAAU,GAAvB,MAAa,UAAU;CAAG,CAAA;AAAb,UAAU;IAzBtB,eAAM,EAAE;IACR,eAAM,CAAC;QACN,OAAO,EAAE;YACP,wBAAU;YACV,wBAAU;YACV,uBAAa,CAAC,YAAY,CAAC;gBACzB,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,UAAU,EAAE,CAAC,MAA6B,EAAE,EAAE;oBAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAChC,CAAC;gBACD,MAAM,EAAE,CAAC,sBAAa,CAAC;aACxB,CAAC;YACF,qBAAY,CAAC,OAAO,CAAC;gBACnB,YAAY,EAAE,YAAY;gBAC1B,UAAU,EAAE,qBAAM;aACnB,CAAC;SACH;QACD,WAAW,EAAE,EAAE;QACf,SAAS,EAAE;YACT,EAAE,OAAO,EAAE,iBAAU,EAAE,QAAQ,EAAE,2CAAmB,EAAE;YACtD,EAAE,OAAO,EAAE,sBAAe,EAAE,QAAQ,EAAE,uCAA0B,EAAE;YAClE,8BAAa;SACd;QACD,OAAO,EAAE,CAAC,wBAAU,EAAE,wBAAU,EAAE,qBAAY,EAAE,8BAAa,CAAC;KAC/D,CAAC;GACW,UAAU,CAAG;AAAb,gCAAU"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.d.ts b/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.d.ts new file mode 100644 index 0000000..e1af72c --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.d.ts @@ -0,0 +1,6 @@ +import { User } from '../entities/user.entity'; +export declare class UserPayload implements Pick { + id: number; + username: string; + role: number; +} diff --git a/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.js b/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.js new file mode 100644 index 0000000..7b861f8 --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UserPayload = void 0; +const openapi = require("@nestjs/swagger"); +class UserPayload { + static _OPENAPI_METADATA_FACTORY() { + return { id: { required: true, type: () => Number }, username: { required: true, type: () => String }, role: { required: true, type: () => Number } }; + } +} +exports.UserPayload = UserPayload; +//# sourceMappingURL=user-payload.dto.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.js.map b/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.js.map new file mode 100644 index 0000000..5158886 --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/model/dto/user-payload.dto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-payload.dto.js","sourceRoot":"","sources":["../../../../../../src/app/core/user/model/dto/user-payload.dto.ts"],"names":[],"mappings":";;;;AAEA,MAAa,WAAW;;;;CAIvB;AAJD,kCAIC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/user/model/entities/user.entity.d.ts b/node_development/node_backend/dist/app/core/user/model/entities/user.entity.d.ts new file mode 100644 index 0000000..3625a6c --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/model/entities/user.entity.d.ts @@ -0,0 +1,10 @@ +import { BaseEntity } from '../../../../shared/model/entities/base-entity.entity'; +export declare class User extends BaseEntity { + username: string; + name?: string; + phoneNumber?: string; + password: string; + acceptedCommercial?: number; + acceptedTerms?: number; + role: number; +} diff --git a/node_development/node_backend/dist/app/core/user/model/entities/user.entity.js b/node_development/node_backend/dist/app/core/user/model/entities/user.entity.js new file mode 100644 index 0000000..e9ffa0f --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/model/entities/user.entity.js @@ -0,0 +1,84 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.User = void 0; +const openapi = require("@nestjs/swagger"); +const swagger_1 = require("@nestjs/swagger"); +const crud_1 = require("@nestjsx/crud"); +const class_transformer_1 = require("class-transformer"); +const class_validator_1 = require("class-validator"); +const typeorm_1 = require("typeorm"); +const base_entity_entity_1 = require("../../../../shared/model/entities/base-entity.entity"); +const roles_enum_1 = require("../../../auth/model/roles.enum"); +let User = class User extends base_entity_entity_1.BaseEntity { + static _OPENAPI_METADATA_FACTORY() { + return { username: { required: true, type: () => String, maxLength: 255 }, name: { required: false, type: () => String, maxLength: 255 }, phoneNumber: { required: false, type: () => String, maxLength: 255 }, password: { required: true, type: () => String, maxLength: 255 }, acceptedCommercial: { required: false, type: () => Number }, acceptedTerms: { required: false, type: () => Number }, role: { required: true, type: () => Number } }; + } +}; +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + __metadata("design:type", String) +], User.prototype, "username", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + __metadata("design:type", String) +], User.prototype, "name", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + __metadata("design:type", String) +], User.prototype, "phoneNumber", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + class_transformer_1.Exclude({ toPlainOnly: true }), + __metadata("design:type", String) +], User.prototype, "password", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + typeorm_1.Column('int', { nullable: true, default: 1 }), + __metadata("design:type", Number) +], User.prototype, "acceptedCommercial", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + typeorm_1.Column('int', { nullable: true, default: 1 }), + __metadata("design:type", Number) +], User.prototype, "acceptedTerms", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + typeorm_1.Column('int', { nullable: false, default: roles_enum_1.roles.USER }), + __metadata("design:type", Number) +], User.prototype, "role", void 0); +User = __decorate([ + typeorm_1.Entity() +], User); +exports.User = User; +//# sourceMappingURL=user.entity.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/user/model/entities/user.entity.js.map b/node_development/node_backend/dist/app/core/user/model/entities/user.entity.js.map new file mode 100644 index 0000000..c716b25 --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/model/entities/user.entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../../../../../src/app/core/user/model/entities/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAAsD;AACtD,wCAAqD;AACrD,yDAA4C;AAC5C,qDAAmE;AACnE,qCAAyC;AACzC,6FAAkF;AAClF,+DAAuD;AAGvD,IAAa,IAAI,GAAjB,MAAa,IAAK,SAAQ,+BAAU;;4EAKvB,GAAG,4DAOH,GAAG,mEAOH,GAAG,+DAOH,GAAG;;CAsBf,CAAA;AAzCC;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;sCAClC;AAOlB;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;kCACtC;AAOd;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;yCAC/B;AAQrB;IANC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,2BAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;sCACb;AAMlB;IAJC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,gBAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;gDAClB;AAM5B;IAJC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,gBAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;2CACvB;AAMvB;IAJC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,gBAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAK,CAAC,IAAI,EAAE,CAAC;;kCAC1C;AA/CH,IAAI;IADhB,gBAAM,EAAE;GACI,IAAI,CAgDhB;AAhDY,oBAAI"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/user/services/user.service.d.ts b/node_development/node_backend/dist/app/core/user/services/user.service.d.ts new file mode 100644 index 0000000..37461a7 --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/services/user.service.d.ts @@ -0,0 +1,9 @@ +import { Repository } from 'typeorm'; +import { User } from '../model/entities/user.entity'; +export declare class UserService { + private readonly userRepository; + constructor(userRepository: Repository); + findOne(username: string): Promise; + registerUser(user: User): Promise; + getUsers(): Promise<[User[], number]>; +} diff --git a/node_development/node_backend/dist/app/core/user/services/user.service.js b/node_development/node_backend/dist/app/core/user/services/user.service.js new file mode 100644 index 0000000..1967a48 --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/services/user.service.js @@ -0,0 +1,63 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UserService = void 0; +const common_1 = require("@nestjs/common"); +const typeorm_1 = require("typeorm"); +const user_entity_1 = require("../model/entities/user.entity"); +const bcrypt_1 = require("bcrypt"); +const typeorm_2 = require("@nestjs/typeorm"); +const roles_enum_1 = require("../../auth/model/roles.enum"); +const class_transformer_1 = require("class-transformer"); +let UserService = class UserService { + constructor(userRepository) { + this.userRepository = userRepository; + } + async findOne(username) { + return this.userRepository.findOne({ + where: { + username, + }, + }); + } + async registerUser(user) { + const actualUser = await this.findOne(user.username); + if (actualUser) { + throw new Error('User already exists'); + } + else { + const salt = await bcrypt_1.genSalt(12); + const hashPass = await bcrypt_1.hash(user.password, salt); + return class_transformer_1.plainToClass(user_entity_1.User, await this.userRepository.save({ + username: user.username, + name: user.name, + phoneNumber: user.phoneNumber, + password: hashPass, + acceptedCommercial: user.acceptedCommercial, + acceptedTerms: user.acceptedTerms, + role: roles_enum_1.roles.USER, + })); + } + } + async getUsers() { + return await this.userRepository.findAndCount(); + } +}; +UserService = __decorate([ + common_1.Injectable(), + __param(0, typeorm_2.InjectRepository(user_entity_1.User)), + __metadata("design:paramtypes", [typeorm_1.Repository]) +], UserService); +exports.UserService = UserService; +//# sourceMappingURL=user.service.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/user/services/user.service.js.map b/node_development/node_backend/dist/app/core/user/services/user.service.js.map new file mode 100644 index 0000000..ef09195 --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/services/user.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../../../../src/app/core/user/services/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qCAAqC;AACrC,+DAAqD;AACrD,mCAAuC;AACvC,6CAAmD;AACnD,4DAAoD;AACpD,yDAAiD;AAGjD,IAAa,WAAW,GAAxB,MAAa,WAAW;IAEtB,YAAqD,cAAgC;QAAhC,mBAAc,GAAd,cAAc,CAAkB;IAAI,CAAC;IAE1F,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACjC,KAAK,EAAE;gBACL,QAAQ;aACT;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAU;QAC3B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC;QAEtD,IAAI,UAAU,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;aACI;YACH,MAAM,IAAI,GAAG,MAAM,gBAAO,CAAC,EAAE,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,aAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAEjD,OAAO,gCAAY,CACjB,kBAAI,EACJ,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,QAAQ;gBAClB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,IAAI,EAAE,kBAAK,CAAC,IAAI;aACjB,CAAC,CACH,CAAC;SACH;IACH,CAAC;IAGD,KAAK,CAAC,QAAQ;QACZ,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAClD,CAAC;CACF,CAAA;AAzCY,WAAW;IADvB,mBAAU,EAAE;IAGE,WAAA,0BAAgB,CAAC,kBAAI,CAAC,CAAA;qCAAkC,oBAAU;GAFpE,WAAW,CAyCvB;AAzCY,kCAAW"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/user/user.module.d.ts b/node_development/node_backend/dist/app/core/user/user.module.d.ts new file mode 100644 index 0000000..7ccd53b --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/user.module.d.ts @@ -0,0 +1,2 @@ +export declare class UserModule { +} diff --git a/node_development/node_backend/dist/app/core/user/user.module.js b/node_development/node_backend/dist/app/core/user/user.module.js new file mode 100644 index 0000000..82ded1b --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/user.module.js @@ -0,0 +1,25 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UserModule = void 0; +const common_1 = require("@nestjs/common"); +const typeorm_1 = require("@nestjs/typeorm"); +const user_entity_1 = require("./model/entities/user.entity"); +const user_service_1 = require("./services/user.service"); +let UserModule = class UserModule { +}; +UserModule = __decorate([ + common_1.Module({ + imports: [typeorm_1.TypeOrmModule.forFeature([user_entity_1.User])], + controllers: [], + providers: [user_service_1.UserService], + exports: [user_service_1.UserService], + }) +], UserModule); +exports.UserModule = UserModule; +//# sourceMappingURL=user.module.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/core/user/user.module.js.map b/node_development/node_backend/dist/app/core/user/user.module.js.map new file mode 100644 index 0000000..7783636 --- /dev/null +++ b/node_development/node_backend/dist/app/core/user/user.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user.module.js","sourceRoot":"","sources":["../../../../src/app/core/user/user.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,8DAAoD;AACpD,0DAAsD;AAQtD,IAAa,UAAU,GAAvB,MAAa,UAAU;CAAG,CAAA;AAAb,UAAU;IANtB,eAAM,CAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,kBAAI,CAAC,CAAC,CAAC;QAC3C,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,UAAU,CAAG;AAAb,gCAAU"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/event/controllers/event.crud.controller.d.ts b/node_development/node_backend/dist/app/event/controllers/event.crud.controller.d.ts new file mode 100644 index 0000000..654d16a --- /dev/null +++ b/node_development/node_backend/dist/app/event/controllers/event.crud.controller.d.ts @@ -0,0 +1,5 @@ +import { EventCrudService } from '../services/event.crud.service'; +export declare class EventCrudController { + service: EventCrudService; + constructor(service: EventCrudService); +} diff --git a/node_development/node_backend/dist/app/event/controllers/event.crud.controller.js b/node_development/node_backend/dist/app/event/controllers/event.crud.controller.js new file mode 100644 index 0000000..a4c21cd --- /dev/null +++ b/node_development/node_backend/dist/app/event/controllers/event.crud.controller.js @@ -0,0 +1,35 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EventCrudController = void 0; +const openapi = require("@nestjs/swagger"); +const common_1 = require("@nestjs/common"); +const crud_1 = require("@nestjsx/crud"); +const serializer_1 = require("@devon4node/common/serializer"); +const event_entity_1 = require("../model/entities/event.entity"); +const event_crud_service_1 = require("../services/event.crud.service"); +let EventCrudController = class EventCrudController { + constructor(service) { + this.service = service; + } +}; +EventCrudController = __decorate([ + crud_1.Crud({ + model: { + type: event_entity_1.Event, + }, + }), + serializer_1.CrudType(event_entity_1.Event), + common_1.Controller('event/events'), + __metadata("design:paramtypes", [event_crud_service_1.EventCrudService]) +], EventCrudController); +exports.EventCrudController = EventCrudController; +//# sourceMappingURL=event.crud.controller.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/event/controllers/event.crud.controller.js.map b/node_development/node_backend/dist/app/event/controllers/event.crud.controller.js.map new file mode 100644 index 0000000..1555113 --- /dev/null +++ b/node_development/node_backend/dist/app/event/controllers/event.crud.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"event.crud.controller.js","sourceRoot":"","sources":["../../../../src/app/event/controllers/event.crud.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wCAAqC;AACrC,8DAAyD;AACzD,iEAAuD;AACvD,uEAAkE;AASlE,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,YAAmB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;CACjD,CAAA;AAFY,mBAAmB;IAP/B,WAAI,CAAC;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,oBAAK;SACZ;KACF,CAAC;IACD,qBAAQ,CAAC,oBAAK,CAAC;IACf,mBAAU,CAAC,cAAc,CAAC;qCAEG,qCAAgB;GADjC,mBAAmB,CAE/B;AAFY,kDAAmB"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/event/event.module.d.ts b/node_development/node_backend/dist/app/event/event.module.d.ts new file mode 100644 index 0000000..34f4a32 --- /dev/null +++ b/node_development/node_backend/dist/app/event/event.module.d.ts @@ -0,0 +1,2 @@ +export declare class EventModule { +} diff --git a/node_development/node_backend/dist/app/event/event.module.js b/node_development/node_backend/dist/app/event/event.module.js new file mode 100644 index 0000000..8877048 --- /dev/null +++ b/node_development/node_backend/dist/app/event/event.module.js @@ -0,0 +1,25 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EventModule = void 0; +const common_1 = require("@nestjs/common"); +const event_entity_1 = require("./model/entities/event.entity"); +const typeorm_1 = require("@nestjs/typeorm"); +const event_crud_service_1 = require("./services/event.crud.service"); +const event_crud_controller_1 = require("./controllers/event.crud.controller"); +let EventModule = class EventModule { +}; +EventModule = __decorate([ + common_1.Module({ + imports: [typeorm_1.TypeOrmModule.forFeature([event_entity_1.Event])], + providers: [event_crud_service_1.EventCrudService], + controllers: [event_crud_controller_1.EventCrudController], + }) +], EventModule); +exports.EventModule = EventModule; +//# sourceMappingURL=event.module.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/event/event.module.js.map b/node_development/node_backend/dist/app/event/event.module.js.map new file mode 100644 index 0000000..409dbaa --- /dev/null +++ b/node_development/node_backend/dist/app/event/event.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"event.module.js","sourceRoot":"","sources":["../../../src/app/event/event.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,gEAAsD;AACtD,6CAAgD;AAChD,sEAAiE;AACjE,+EAA0E;AAO1E,IAAa,WAAW,GAAxB,MAAa,WAAW;CAAG,CAAA;AAAd,WAAW;IALvB,eAAM,CAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,oBAAK,CAAC,CAAC,CAAC;QAC5C,SAAS,EAAE,CAAC,qCAAgB,CAAC;QAC7B,WAAW,EAAE,CAAC,2CAAmB,CAAC;KACnC,CAAC;GACW,WAAW,CAAG;AAAd,kCAAW"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/event/model/entities/event.entity.d.ts b/node_development/node_backend/dist/app/event/model/entities/event.entity.d.ts new file mode 100644 index 0000000..86e943c --- /dev/null +++ b/node_development/node_backend/dist/app/event/model/entities/event.entity.d.ts @@ -0,0 +1,10 @@ +import { BaseEntity } from '../../../shared/model/entities/base-entity.entity'; +export declare class Event extends BaseEntity { + eventName: string; + startDate: string; + endDate: string; + location: string; + description: string; + attentionTime: string; + visitorCount: number; +} diff --git a/node_development/node_backend/dist/app/event/model/entities/event.entity.js b/node_development/node_backend/dist/app/event/model/entities/event.entity.js new file mode 100644 index 0000000..1afecc3 --- /dev/null +++ b/node_development/node_backend/dist/app/event/model/entities/event.entity.js @@ -0,0 +1,83 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Event = void 0; +const openapi = require("@nestjs/swagger"); +const swagger_1 = require("@nestjs/swagger"); +const crud_1 = require("@nestjsx/crud"); +const class_validator_1 = require("class-validator"); +const typeorm_1 = require("typeorm"); +const base_entity_entity_1 = require("../../../shared/model/entities/base-entity.entity"); +let Event = class Event extends base_entity_entity_1.BaseEntity { + static _OPENAPI_METADATA_FACTORY() { + return { eventName: { required: true, type: () => String, maxLength: 255 }, startDate: { required: true, type: () => String, maxLength: 255 }, endDate: { required: true, type: () => String, maxLength: 255 }, location: { required: true, type: () => String, maxLength: 255 }, description: { required: true, type: () => String, maxLength: 255 }, attentionTime: { required: true, type: () => String, maxLength: 255 }, visitorCount: { required: true, type: () => Number } }; + } +}; +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + __metadata("design:type", String) +], Event.prototype, "eventName", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { nullable: true }), + __metadata("design:type", String) +], Event.prototype, "startDate", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { nullable: true }), + __metadata("design:type", String) +], Event.prototype, "endDate", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + __metadata("design:type", String) +], Event.prototype, "location", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + __metadata("design:type", String) +], Event.prototype, "description", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { nullable: false }), + __metadata("design:type", String) +], Event.prototype, "attentionTime", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + typeorm_1.Column('int', { default: 0, nullable: false }), + __metadata("design:type", Number) +], Event.prototype, "visitorCount", void 0); +Event = __decorate([ + typeorm_1.Entity() +], Event); +exports.Event = Event; +//# sourceMappingURL=event.entity.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/event/model/entities/event.entity.js.map b/node_development/node_backend/dist/app/event/model/entities/event.entity.js.map new file mode 100644 index 0000000..410c91d --- /dev/null +++ b/node_development/node_backend/dist/app/event/model/entities/event.entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"event.entity.js","sourceRoot":"","sources":["../../../../../src/app/event/model/entities/event.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAAsD;AACtD,wCAAqD;AACrD,qDAAmE;AACnE,qCAAyC;AACzC,0FAA+E;AAG/E,IAAa,KAAK,GAAlB,MAAa,KAAM,SAAQ,+BAAU;;6EAKtB,GAAG,gEAOH,GAAG,8DAOH,GAAG,+DAOH,GAAG,kEAOH,GAAG,oEAOH,GAAG;;CAYjB,CAAA;AA7CG;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;wCACjC;AAOnB;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACnB;AAOnB;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACrB;AAOjB;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;uCAClC;AAOlB;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;0CAC/B;AAOrB;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;4CAChB;AAMvB;IAJC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,gBAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;2CACzB;AAhDb,KAAK;IADjB,gBAAM,EAAE;GACI,KAAK,CAoDjB;AApDY,sBAAK"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/event/services/event.crud.service.d.ts b/node_development/node_backend/dist/app/event/services/event.crud.service.d.ts new file mode 100644 index 0000000..a7ab7de --- /dev/null +++ b/node_development/node_backend/dist/app/event/services/event.crud.service.d.ts @@ -0,0 +1,8 @@ +import { TypeOrmCrudService } from '@nestjsx/crud-typeorm'; +import { Repository } from 'typeorm'; +import { Event } from '../model/entities/event.entity'; +export declare class EventCrudService extends TypeOrmCrudService { + constructor(repo: Repository); + increaseVisitorCount(eventId: number): Promise; + decreaseVisitorCount(eventId: number): Promise; +} diff --git a/node_development/node_backend/dist/app/event/services/event.crud.service.js b/node_development/node_backend/dist/app/event/services/event.crud.service.js new file mode 100644 index 0000000..da9c551 --- /dev/null +++ b/node_development/node_backend/dist/app/event/services/event.crud.service.js @@ -0,0 +1,38 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EventCrudService = void 0; +const common_1 = require("@nestjs/common"); +const typeorm_1 = require("@nestjs/typeorm"); +const crud_typeorm_1 = require("@nestjsx/crud-typeorm"); +const typeorm_2 = require("typeorm"); +const event_entity_1 = require("../model/entities/event.entity"); +let EventCrudService = class EventCrudService extends crud_typeorm_1.TypeOrmCrudService { + constructor(repo) { + super(repo); + } + async increaseVisitorCount(eventId) { + console.log(eventId); + } + async decreaseVisitorCount(eventId) { + console.log(eventId); + } +}; +EventCrudService = __decorate([ + common_1.Injectable(), + __param(0, typeorm_1.InjectRepository(event_entity_1.Event)), + __metadata("design:paramtypes", [typeorm_2.Repository]) +], EventCrudService); +exports.EventCrudService = EventCrudService; +//# sourceMappingURL=event.crud.service.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/event/services/event.crud.service.js.map b/node_development/node_backend/dist/app/event/services/event.crud.service.js.map new file mode 100644 index 0000000..be27cbf --- /dev/null +++ b/node_development/node_backend/dist/app/event/services/event.crud.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"event.crud.service.js","sourceRoot":"","sources":["../../../../src/app/event/services/event.crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,wDAA2D;AAC3D,qCAAqC;AACrC,iEAAuD;AAGvD,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,iCAAyB;IAC7D,YAAqC,IAAuB;QAC1D,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAe;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAcvB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAe;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IASvB,CAAC;CAEF,CAAA;AAlCY,gBAAgB;IAD5B,mBAAU,EAAE;IAEE,WAAA,0BAAgB,CAAC,oBAAK,CAAC,CAAA;qCAAO,oBAAU;GAD1C,gBAAgB,CAkC5B;AAlCY,4CAAgB"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.d.ts b/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.d.ts new file mode 100644 index 0000000..28b1533 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.d.ts @@ -0,0 +1,10 @@ +import { QueueDetail } from '../model/entities/queue-detail.entity'; +import { QueueDetailCrudService } from '../services/queue-detail.crud.service'; +import { queueDetailDTO } from '../model/entities/queueDetail.dto'; +export declare class QueueDetailCrudController { + queueDetailservice: QueueDetailCrudService; + constructor(queueDetailservice: QueueDetailCrudService); + joinQueue(queueDTO: queueDetailDTO): Promise; + leaveQueue(queueId: number): Promise; + getQueueDetails(): Promise; +} diff --git a/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.js b/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.js new file mode 100644 index 0000000..4005d59 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.js @@ -0,0 +1,73 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.QueueDetailCrudController = void 0; +const openapi = require("@nestjs/swagger"); +const common_1 = require("@nestjs/common"); +const crud_1 = require("@nestjsx/crud"); +const serializer_1 = require("@devon4node/common/serializer"); +const queue_detail_entity_1 = require("../model/entities/queue-detail.entity"); +const queue_detail_crud_service_1 = require("../services/queue-detail.crud.service"); +const queueDetail_dto_1 = require("../model/entities/queueDetail.dto"); +let QueueDetailCrudController = class QueueDetailCrudController { + constructor(queueDetailservice) { + this.queueDetailservice = queueDetailservice; + } + async joinQueue(queueDTO) { + console.log(queueDTO); + return await this.queueDetailservice.joinQueue(queueDTO); + } + async leaveQueue(queueId) { + console.log(queueId + " before deleting it"); + return await this.queueDetailservice.leaveQueue(queueId); + } + async getQueueDetails() { + return await this.queueDetailservice.getQueueDetails(); + } +}; +__decorate([ + common_1.Post('joinQueue'), + openapi.ApiResponse({ status: 201, type: require("../model/entities/queue-detail.entity").QueueDetail }), + __param(0, common_1.Body()), + __metadata("design:type", Function), + __metadata("design:paramtypes", [queueDetail_dto_1.queueDetailDTO]), + __metadata("design:returntype", Promise) +], QueueDetailCrudController.prototype, "joinQueue", null); +__decorate([ + common_1.Delete(':id'), + openapi.ApiResponse({ status: 200, type: require("../model/entities/queue-detail.entity").QueueDetail }), + __param(0, common_1.Param('id')), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number]), + __metadata("design:returntype", Promise) +], QueueDetailCrudController.prototype, "leaveQueue", null); +__decorate([ + common_1.Get('getAllQueueDetails'), + openapi.ApiResponse({ status: 200, type: [require("../model/entities/queue-detail.entity").QueueDetail] }), + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", Promise) +], QueueDetailCrudController.prototype, "getQueueDetails", null); +QueueDetailCrudController = __decorate([ + crud_1.Crud({ + model: { + type: queue_detail_entity_1.QueueDetail, + }, + }), + serializer_1.CrudType(queue_detail_entity_1.QueueDetail), + common_1.Controller('queue-detail/queue-details'), + __metadata("design:paramtypes", [queue_detail_crud_service_1.QueueDetailCrudService]) +], QueueDetailCrudController); +exports.QueueDetailCrudController = QueueDetailCrudController; +//# sourceMappingURL=queue-detail.crud.controller.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.js.map b/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.js.map new file mode 100644 index 0000000..d0a0419 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/controllers/queue-detail.crud.controller.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue-detail.crud.controller.js","sourceRoot":"","sources":["../../../../src/app/queue-detail/controllers/queue-detail.crud.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA4E;AAC5E,wCAAqC;AACrC,8DAAyD;AACzD,+EAAoE;AACpE,qFAA+E;AAC/E,uEAAmE;AAWnE,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IACpC,YAAmB,kBAA0C;QAA1C,uBAAkB,GAAlB,kBAAkB,CAAwB;IAAI,CAAC;IAIlE,KAAK,CAAC,SAAS,CAAS,QAAwB;QAC9C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAGD,KAAK,CAAC,UAAU,CAAc,OAAe;QAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,qBAAqB,CAAC,CAAC;QAC7C,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAGD,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;IACzD,CAAC;CACF,CAAA;AAfC;IADC,aAAI,CAAC,WAAW,CAAC;;IACD,WAAA,aAAI,EAAE,CAAA;;qCAAW,gCAAc;;0DAG/C;AAGD;IADC,eAAM,CAAC,KAAK,CAAC;;IACI,WAAA,cAAK,CAAC,IAAI,CAAC,CAAA;;;;2DAG5B;AAGD;IADC,YAAG,CAAC,oBAAoB,CAAC;;;;;gEAGzB;AAnBU,yBAAyB;IAPrC,WAAI,CAAC;QACJ,KAAK,EAAE;YACL,IAAI,EAAE,iCAAW;SAClB;KACF,CAAC;IACD,qBAAQ,CAAC,iCAAW,CAAC;IACrB,mBAAU,CAAC,4BAA4B,CAAC;qCAEA,kDAAsB;GADlD,yBAAyB,CAoBrC;AApBY,8DAAyB"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.d.ts b/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.d.ts new file mode 100644 index 0000000..1b7150e --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.d.ts @@ -0,0 +1,4 @@ +export declare class JoinCriteria { + eventId: number; + visitorId: number; +} diff --git a/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.js b/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.js new file mode 100644 index 0000000..9cc5123 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JoinCriteria = void 0; +class JoinCriteria { +} +exports.JoinCriteria = JoinCriteria; +//# sourceMappingURL=JoinCriteria.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.js.map b/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.js.map new file mode 100644 index 0000000..be57fff --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/JoinCriteria.js.map @@ -0,0 +1 @@ +{"version":3,"file":"JoinCriteria.js","sourceRoot":"","sources":["../../../../src/app/queue-detail/model/JoinCriteria.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;CAIxB;AAJD,oCAIC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.d.ts b/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.d.ts new file mode 100644 index 0000000..983cd22 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.d.ts @@ -0,0 +1,7 @@ +import { BaseEntity } from '../../../shared/model/entities/base-entity.entity'; +export declare class QueueDetail extends BaseEntity { + queueNumber?: string; + minEstimatedTime?: string; + idUser?: number; + idEvent?: number; +} diff --git a/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.js b/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.js new file mode 100644 index 0000000..55421cb --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.js @@ -0,0 +1,62 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.QueueDetail = void 0; +const openapi = require("@nestjs/swagger"); +const swagger_1 = require("@nestjs/swagger"); +const crud_1 = require("@nestjsx/crud"); +const class_validator_1 = require("class-validator"); +const typeorm_1 = require("typeorm"); +const user_entity_1 = require("../../../core/user/model/entities/user.entity"); +const event_entity_1 = require("../../../event/model/entities/event.entity"); +const base_entity_entity_1 = require("../../../shared/model/entities/base-entity.entity"); +let QueueDetail = class QueueDetail extends base_entity_entity_1.BaseEntity { + static _OPENAPI_METADATA_FACTORY() { + return { queueNumber: { required: false, type: () => String, maxLength: 255 }, minEstimatedTime: { required: false, type: () => String, maxLength: 255 }, idUser: { required: false, type: () => Number }, idEvent: { required: false, type: () => Number } }; + } +}; +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + __metadata("design:type", String) +], QueueDetail.prototype, "queueNumber", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + class_validator_1.MaxLength(255), + typeorm_1.Column('varchar', { length: 255, nullable: false }), + __metadata("design:type", String) +], QueueDetail.prototype, "minEstimatedTime", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + typeorm_1.ManyToOne(() => user_entity_1.User, { eager: true }), + typeorm_1.JoinColumn({ name: 'idUser', referencedColumnName: 'id' }), + __metadata("design:type", Number) +], QueueDetail.prototype, "idUser", void 0); +__decorate([ + swagger_1.ApiPropertyOptional(), + class_validator_1.IsDefined({ groups: [crud_1.CrudValidationGroups.CREATE] }), + class_validator_1.IsOptional({ groups: [crud_1.CrudValidationGroups.UPDATE] }), + typeorm_1.ManyToOne(() => event_entity_1.Event, { eager: true }), + typeorm_1.JoinColumn({ name: 'idEvent', referencedColumnName: 'id' }), + __metadata("design:type", Number) +], QueueDetail.prototype, "idEvent", void 0); +QueueDetail = __decorate([ + typeorm_1.Entity() +], QueueDetail); +exports.QueueDetail = QueueDetail; +//# sourceMappingURL=queue-detail.entity.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.js.map b/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.js.map new file mode 100644 index 0000000..72e7831 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/entities/queue-detail.entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue-detail.entity.js","sourceRoot":"","sources":["../../../../../src/app/queue-detail/model/entities/queue-detail.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAAsD;AACtD,wCAAqD;AACrD,qDAAmE;AACnE,qCAAgE;AAChE,+EAAqE;AACrE,6EAAmE;AACnE,0FAA+E;AAG/E,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,+BAAU;;gFAK5B,GAAG,wEAOH,GAAG;;CAkBjB,CAAA;AAvBG;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;gDAC/B;AAOrB;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,2BAAS,CAAC,GAAG,CAAC;IACd,gBAAM,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;qDAC1B;AAO1B;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,mBAAS,CAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACtC,oBAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;;2CAC3C;AAOhB;IALC,6BAAmB,EAAE;IACrB,2BAAS,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,4BAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2BAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,mBAAS,CAAC,GAAG,EAAE,CAAC,oBAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACvC,oBAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;;4CAC3C;AA5BR,WAAW;IADvB,gBAAM,EAAE;GACI,WAAW,CA8BvB;AA9BY,kCAAW"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.d.ts b/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.d.ts new file mode 100644 index 0000000..9395676 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.d.ts @@ -0,0 +1,4 @@ +export declare class queueDetailDTO { + eventId: number; + visitorId: number; +} diff --git a/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.js b/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.js new file mode 100644 index 0000000..aa345aa --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.queueDetailDTO = void 0; +const openapi = require("@nestjs/swagger"); +class queueDetailDTO { + static _OPENAPI_METADATA_FACTORY() { + return { eventId: { required: true, type: () => Number }, visitorId: { required: true, type: () => Number } }; + } +} +exports.queueDetailDTO = queueDetailDTO; +//# sourceMappingURL=queueDetail.dto.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.js.map b/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.js.map new file mode 100644 index 0000000..a022188 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/model/entities/queueDetail.dto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queueDetail.dto.js","sourceRoot":"","sources":["../../../../../src/app/queue-detail/model/entities/queueDetail.dto.ts"],"names":[],"mappings":";;;;AAAA,MAAa,cAAc;;;;CAG1B;AAHD,wCAGC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/queue-detail.module.d.ts b/node_development/node_backend/dist/app/queue-detail/queue-detail.module.d.ts new file mode 100644 index 0000000..faede57 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/queue-detail.module.d.ts @@ -0,0 +1,2 @@ +export declare class QueueDetailModule { +} diff --git a/node_development/node_backend/dist/app/queue-detail/queue-detail.module.js b/node_development/node_backend/dist/app/queue-detail/queue-detail.module.js new file mode 100644 index 0000000..3c79f89 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/queue-detail.module.js @@ -0,0 +1,28 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.QueueDetailModule = void 0; +const common_1 = require("@nestjs/common"); +const queue_detail_entity_1 = require("./model/entities/queue-detail.entity"); +const typeorm_1 = require("@nestjs/typeorm"); +const queue_detail_crud_service_1 = require("./services/queue-detail.crud.service"); +const queue_detail_crud_controller_1 = require("./controllers/queue-detail.crud.controller"); +const event_entity_1 = require("../event/model/entities/event.entity"); +const user_entity_1 = require("../core/user/model/entities/user.entity"); +const event_crud_service_1 = require("../event/services/event.crud.service"); +let QueueDetailModule = class QueueDetailModule { +}; +QueueDetailModule = __decorate([ + common_1.Module({ + imports: [typeorm_1.TypeOrmModule.forFeature([queue_detail_entity_1.QueueDetail, event_entity_1.Event, user_entity_1.User])], + providers: [queue_detail_crud_service_1.QueueDetailCrudService, event_crud_service_1.EventCrudService], + controllers: [queue_detail_crud_controller_1.QueueDetailCrudController], + }) +], QueueDetailModule); +exports.QueueDetailModule = QueueDetailModule; +//# sourceMappingURL=queue-detail.module.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/queue-detail.module.js.map b/node_development/node_backend/dist/app/queue-detail/queue-detail.module.js.map new file mode 100644 index 0000000..d8ebf1f --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/queue-detail.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue-detail.module.js","sourceRoot":"","sources":["../../../src/app/queue-detail/queue-detail.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8EAAmE;AACnE,6CAAgD;AAChD,oFAA8E;AAC9E,6FAAuF;AACvF,uEAA6D;AAC7D,yEAA+D;AAC/D,6EAAwE;AAOxE,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;CAAI,CAAA;AAArB,iBAAiB;IAL7B,eAAM,CAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,iCAAW,EAAE,oBAAK,EAAE,kBAAI,CAAC,CAAC,CAAC;QAC/D,SAAS,EAAE,CAAC,kDAAsB,EAAE,qCAAgB,CAAC;QACrD,WAAW,EAAE,CAAC,wDAAyB,CAAC;KACzC,CAAC;GACW,iBAAiB,CAAI;AAArB,8CAAiB"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.d.ts b/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.d.ts new file mode 100644 index 0000000..efa7f07 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.d.ts @@ -0,0 +1,18 @@ +import { Repository } from 'typeorm'; +import { User } from '../../core/user/model/entities/user.entity'; +import { Event } from '../../event/model/entities/event.entity'; +import { EventCrudService } from '../../event/services/event.crud.service'; +import { QueueDetail } from '../model/entities/queue-detail.entity'; +import { queueDetailDTO } from '../model/entities/queueDetail.dto'; +export declare class QueueDetailCrudService { + private readonly queueRepo; + private readonly eventRepo; + private readonly userRepo; + eventService: EventCrudService; + constructor(queueRepo: Repository, eventRepo: Repository, userRepo: Repository, eventService: EventCrudService); + joinQueue(queueDTO: queueDetailDTO): Promise; + generateQueueNumber(queueData: QueueDetail[]): string; + calculateMinimumEstimatedTime(visitorCount: number): string; + leaveQueue(queueId: number): Promise; + getQueueDetails(): Promise; +} diff --git a/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.js b/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.js new file mode 100644 index 0000000..21bba02 --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.js @@ -0,0 +1,125 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.QueueDetailCrudService = void 0; +const common_1 = require("@nestjs/common"); +const typeorm_1 = require("@nestjs/typeorm"); +const typeorm_2 = require("typeorm"); +const user_entity_1 = require("../../core/user/model/entities/user.entity"); +const event_entity_1 = require("../../event/model/entities/event.entity"); +const event_crud_service_1 = require("../../event/services/event.crud.service"); +const queue_detail_entity_1 = require("../model/entities/queue-detail.entity"); +let QueueDetailCrudService = class QueueDetailCrudService { + constructor(queueRepo, eventRepo, userRepo, eventService) { + this.queueRepo = queueRepo; + this.eventRepo = eventRepo; + this.userRepo = userRepo; + this.eventService = eventService; + } + async joinQueue(queueDTO) { + const userId = queueDTO.visitorId; + const eventId = queueDTO.eventId; + var queueDetail = new queue_detail_entity_1.QueueDetail(); + var event = new event_entity_1.Event(); + await this.queueRepo.find({ where: { idEvent: eventId, idUser: userId } }).then(data => { + if (data.length === 0) { + this.queueRepo.find({ where: { idEvent: eventId } }).then(data => { + if (data.length === 0) { + queueDetail.queueNumber = 'Q001'; + } + else { + queueDetail.queueNumber = this.generateQueueNumber(data); + } + }); + } + else { + return data[0]; + } + }); + await this.eventRepo.findOne(eventId).then(data => { + if (data != null) { + queueDetail.idEvent = data.id; + const visitor_Count = data.visitorCount; + queueDetail.minEstimatedTime = this.calculateMinimumEstimatedTime(visitor_Count); + } + }); + await this.userRepo.findOne(userId).then(data => { + if (data != null) { + queueDetail.idUser = data.id; + } + }); + const savedQueueDetail = await this.queueRepo.save(queueDetail); + await this.eventRepo.findOne(eventId).then(data => { + if (data != null) { + const visitor_Count = data.visitorCount; + const visitor_count = visitor_Count + 1; + data.visitorCount = visitor_count; + event.visitorCount = data.visitorCount; + event = data; + this.eventRepo.save(event); + this.eventRepo.save(data); + } + }); + return savedQueueDetail; + } + generateQueueNumber(queueData) { + var _a; + const lastQueueDetail = queueData[queueData.length - 1]; + const lastQueueNumber = Number((_a = lastQueueDetail.queueNumber) === null || _a === void 0 ? void 0 : _a.substring(2)); + const updatedQueueNumber = lastQueueNumber + 1; + const stringPart = updatedQueueNumber.toString(); + const newQueueNumber = "Q00" + stringPart; + return newQueueNumber; + } + calculateMinimumEstimatedTime(visitorCount) { + const minimumAttentionTime = "5 minutes"; + var integerPart = Number(minimumAttentionTime.substring(0, 1)); + var calculatedEstimatedTime = integerPart * visitorCount; + console.log("after calculating minimum estimated time " + calculatedEstimatedTime); + var calculatedOutput = calculatedEstimatedTime.toString(); + return calculatedOutput; + } + async leaveQueue(queueId) { + await this.queueRepo.findOne(queueId).then(data => { + if (data != null) { + console.log(data); + const event = data.idEvent; + this.eventRepo.findOne(event.id).then(data => { + if (data != null) { + console.log(data); + const existingVisitorCount = data.visitorCount; + console.log(existingVisitorCount); + const decreasedVisitorCount = data.visitorCount - 1; + console.log(decreasedVisitorCount); + data.visitorCount = decreasedVisitorCount; + this.eventRepo.save(data); + } + }); + this.queueRepo.delete(queueId); + } + }); + } + async getQueueDetails() { + return await this.queueRepo.find(); + } +}; +QueueDetailCrudService = __decorate([ + common_1.Injectable(), + __param(0, typeorm_1.InjectRepository(queue_detail_entity_1.QueueDetail)), __param(1, typeorm_1.InjectRepository(event_entity_1.Event)), + __param(2, typeorm_1.InjectRepository(user_entity_1.User)), + __metadata("design:paramtypes", [typeorm_2.Repository, typeorm_2.Repository, + typeorm_2.Repository, event_crud_service_1.EventCrudService]) +], QueueDetailCrudService); +exports.QueueDetailCrudService = QueueDetailCrudService; +//# sourceMappingURL=queue-detail.crud.service.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.js.map b/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.js.map new file mode 100644 index 0000000..872e40d --- /dev/null +++ b/node_development/node_backend/dist/app/queue-detail/services/queue-detail.crud.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue-detail.crud.service.js","sourceRoot":"","sources":["../../../../src/app/queue-detail/services/queue-detail.crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,4EAAkE;AAClE,0EAAgE;AAChE,gFAA2E;AAC3E,+EAAoE;AAKpE,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAGjC,YAA4D,SAAkC,EAA4C,SAA4B,EACzH,QAA0B,EAAS,YAA8B;QADlD,cAAS,GAAT,SAAS,CAAyB;QAA4C,cAAS,GAAT,SAAS,CAAmB;QACzH,aAAQ,GAAR,QAAQ,CAAkB;QAAS,iBAAY,GAAZ,YAAY,CAAkB;IAAI,CAAC;IAInH,KAAK,CAAC,SAAS,CAAC,QAAwB;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,IAAI,WAAW,GAAgB,IAAI,iCAAW,EAAE,CAAC;QACjD,IAAI,KAAK,GAAU,IAAI,oBAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACrF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAErB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;wBACrB,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;qBAClC;yBAAM;wBACL,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;qBAC1D;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAEhD,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;gBACxC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;aAClF;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;aAC9B;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChD,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;gBACxC,MAAM,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;gBAClC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACvC,KAAK,GAAG,IAAI,CAAC;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;QAGH,OAAO,gBAAgB,CAAC;IAE1B,CAAC;IAID,mBAAmB,CAAC,SAAwB;;QAC1C,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,OAAC,eAAe,CAAC,WAAW,0CAAE,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,kBAAkB,GAAG,eAAe,GAAG,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,KAAK,GAAG,UAAU,CAAC;QAC1C,OAAO,cAAc,CAAC;IACxB,CAAC;IAKD,6BAA6B,CAAC,YAAoB;QAChD,MAAM,oBAAoB,GAAG,WAAW,CAAC;QACzC,IAAI,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,uBAAuB,GAAG,WAAW,GAAG,YAAY,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,2CAA2C,GAAG,uBAAuB,CAAC,CAAC;QACnF,IAAI,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAID,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChD,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,KAAK,GAAgB,IAAI,CAAC,OAAO,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC3C,IAAI,IAAI,IAAI,IAAI,EAAE;wBAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAClB,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;wBAC/C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;wBAClC,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;wBACpD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;wBACnC,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC;wBAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAE3B;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAID,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;CAGF,CAAA;AAnHY,sBAAsB;IADlC,mBAAU,EAAE;IAIE,WAAA,0BAAgB,CAAC,iCAAW,CAAC,CAAA,EAAuD,WAAA,0BAAgB,CAAC,oBAAK,CAAC,CAAA;IACnH,WAAA,0BAAgB,CAAC,kBAAI,CAAC,CAAA;qCAD4C,oBAAU,EAAoE,oBAAU;QACxG,oBAAU,EAA6B,qCAAgB;GAJnG,sBAAsB,CAmHlC;AAnHY,wDAAsB"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.d.ts b/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.d.ts new file mode 100644 index 0000000..20e742a --- /dev/null +++ b/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.d.ts @@ -0,0 +1,10 @@ +export declare class BusinessLogicException extends Error { + private readonly _errorId?; + private readonly _name; + private readonly _message; + constructor(message: string, errorId?: string); + get errorId(): string | undefined; + get name(): string; + get message(): string; + plainObject(): Pick; +} diff --git a/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.js b/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.js new file mode 100644 index 0000000..4f383da --- /dev/null +++ b/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BusinessLogicException = void 0; +class BusinessLogicException extends Error { + constructor(message, errorId) { + super(); + this._name = 'BusinessLogicException'; + this._message = message; + this._errorId = errorId; + } + get errorId() { + return this._errorId; + } + get name() { + return this._name; + } + get message() { + return this._message; + } + plainObject() { + return { message: this.message, name: this.name, errorId: this.errorId }; + } +} +exports.BusinessLogicException = BusinessLogicException; +//# sourceMappingURL=business-logic.exception.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.js.map b/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.js.map new file mode 100644 index 0000000..b092c0c --- /dev/null +++ b/node_development/node_backend/dist/app/shared/exceptions/business-logic.exception.js.map @@ -0,0 +1 @@ +{"version":3,"file":"business-logic.exception.js","sourceRoot":"","sources":["../../../../src/app/shared/exceptions/business-logic.exception.ts"],"names":[],"mappings":";;;AAAA,MAAa,sBAAuB,SAAQ,KAAK;IAK/C,YAAY,OAAe,EAAE,OAAgB;QAC3C,KAAK,EAAE,CAAC;QAJO,UAAK,GAAW,wBAAwB,CAAC;QAKxD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,WAAW;QACT,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC;CACF;AA1BD,wDA0BC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/filters/business-logic.filter.d.ts b/node_development/node_backend/dist/app/shared/filters/business-logic.filter.d.ts new file mode 100644 index 0000000..7a53924 --- /dev/null +++ b/node_development/node_backend/dist/app/shared/filters/business-logic.filter.d.ts @@ -0,0 +1,8 @@ +import { ArgumentsHost, ExceptionFilter } from '@nestjs/common'; +import { BusinessLogicException } from '../exceptions/business-logic.exception'; +import { WinstonLogger } from '../logger/winston.logger'; +export declare class BusinessLogicFilter implements ExceptionFilter { + readonly logger?: WinstonLogger | undefined; + constructor(logger?: WinstonLogger | undefined); + catch(exception: T, host: ArgumentsHost): void; +} diff --git a/node_development/node_backend/dist/app/shared/filters/business-logic.filter.js b/node_development/node_backend/dist/app/shared/filters/business-logic.filter.js new file mode 100644 index 0000000..1c9f2b7 --- /dev/null +++ b/node_development/node_backend/dist/app/shared/filters/business-logic.filter.js @@ -0,0 +1,40 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BusinessLogicFilter = void 0; +const common_1 = require("@nestjs/common"); +const business_logic_exception_1 = require("../exceptions/business-logic.exception"); +const winston_logger_1 = require("../logger/winston.logger"); +let BusinessLogicFilter = class BusinessLogicFilter { + constructor(logger) { + this.logger = logger; + } + catch(exception, host) { + const ctx = host.switchToHttp(); + const response = ctx.getResponse(); + const request = ctx.getRequest(); + const responseObj = Object.assign(Object.assign({}, exception.plainObject()), { statusCode: 400, timestamp: new Date().toISOString(), path: request.url }); + if (this.logger) { + this.logger.error(exception.message, exception.stack, 'LogicFilter'); + } + response.status(400).json(responseObj); + } +}; +BusinessLogicFilter = __decorate([ + common_1.Catch(business_logic_exception_1.BusinessLogicException), + __param(0, common_1.Optional()), + __metadata("design:paramtypes", [winston_logger_1.WinstonLogger]) +], BusinessLogicFilter); +exports.BusinessLogicFilter = BusinessLogicFilter; +//# sourceMappingURL=business-logic.filter.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/filters/business-logic.filter.js.map b/node_development/node_backend/dist/app/shared/filters/business-logic.filter.js.map new file mode 100644 index 0000000..9565bbb --- /dev/null +++ b/node_development/node_backend/dist/app/shared/filters/business-logic.filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"business-logic.filter.js","sourceRoot":"","sources":["../../../../src/app/shared/filters/business-logic.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiF;AACjF,qFAAgF;AAChF,6DAAyD;AAIzD,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,YAAwC,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAElE,KAAK,CAAC,SAAY,EAAE,IAAmB;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAW,CAAC;QAE1C,MAAM,WAAW,mCACZ,SAAS,CAAC,WAAW,EAAE,KAC1B,UAAU,EAAE,GAAG,EACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACnC,IAAI,EAAE,OAAO,CAAC,GAAG,GAClB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,KAAM,EAAE,aAAa,CAAC,CAAC;SACvE;QAED,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AArBY,mBAAmB;IAD/B,cAAK,CAAC,iDAAsB,CAAC;IAEf,WAAA,iBAAQ,EAAE,CAAA;qCAA0B,8BAAa;GADnD,mBAAmB,CAqB/B;AArBY,kDAAmB"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/logger/winston.logger.d.ts b/node_development/node_backend/dist/app/shared/logger/winston.logger.d.ts new file mode 100644 index 0000000..1efee89 --- /dev/null +++ b/node_development/node_backend/dist/app/shared/logger/winston.logger.d.ts @@ -0,0 +1,16 @@ +import { ConfigService } from '@devon4node/config'; +import { Logger } from '@nestjs/common'; +import { Config } from '../model/config/config.model'; +export declare class WinstonLogger extends Logger { + private readonly configService?; + private static DEFAULT_LOG_LEVEL; + private console; + private logger?; + constructor(configService?: ConfigService | undefined); + overrideLogger(level: 'error' | 'warn' | 'info' | 'http' | 'verbose' | 'debug' | 'silly'): void; + log(message: string, context?: string): void; + error(message: string, trace: string, context?: string): void; + warn(message: string, context?: string): void; + debug(message: any, context?: string): void; + verbose(message: any, context?: string): void; +} diff --git a/node_development/node_backend/dist/app/shared/logger/winston.logger.js b/node_development/node_backend/dist/app/shared/logger/winston.logger.js new file mode 100644 index 0000000..48f68d5 --- /dev/null +++ b/node_development/node_backend/dist/app/shared/logger/winston.logger.js @@ -0,0 +1,113 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var __param = (this && this.__param) || function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WinstonLogger = void 0; +const config_1 = require("@devon4node/config"); +const common_1 = require("@nestjs/common"); +const winston = require("winston"); +let WinstonLogger = class WinstonLogger extends common_1.Logger { + constructor(configService) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; + super(); + this.configService = configService; + this.console = true; + const logLevel = ((_b = (_a = this.configService) === null || _a === void 0 ? void 0 : _a.values.loggerConfig) === null || _b === void 0 ? void 0 : _b.loggerLevel) || WinstonLogger.DEFAULT_LOG_LEVEL; + const generalDir = (_d = (_c = this.configService) === null || _c === void 0 ? void 0 : _c.values.loggerConfig) === null || _d === void 0 ? void 0 : _d.generalLogFile; + const errorDir = (_f = (_e = this.configService) === null || _e === void 0 ? void 0 : _e.values.loggerConfig) === null || _f === void 0 ? void 0 : _f.errorLogFile; + const transports = []; + if (((_h = (_g = this.configService) === null || _g === void 0 ? void 0 : _g.values.loggerConfig) === null || _h === void 0 ? void 0 : _h.console) !== undefined) { + this.console = (_k = (_j = this.configService) === null || _j === void 0 ? void 0 : _j.values.loggerConfig) === null || _k === void 0 ? void 0 : _k.console; + } + if (generalDir) { + transports.push(new winston.transports.File({ + filename: generalDir, + })); + } + if (errorDir) { + transports.push(new winston.transports.File({ + filename: errorDir, + level: 'error', + })); + } + this.overrideLogger(logLevel); + if (transports.length) { + this.logger = winston.createLogger({ + format: winston.format.combine(winston.format.timestamp(), winston.format.json()), + level: logLevel, + transports, + }); + } + } + overrideLogger(level) { + const loggerLevels = ['debug', 'verbose', 'log', 'warn', 'error']; + let nestLoggerLevel = level; + if (nestLoggerLevel === 'info' || nestLoggerLevel === 'http') { + nestLoggerLevel = 'log'; + } + if (nestLoggerLevel === 'silly') { + nestLoggerLevel = 'debug'; + } + const pos = loggerLevels.findIndex(e => e === nestLoggerLevel); + if (pos !== -1) { + common_1.Logger.overrideLogger(loggerLevels.slice(pos)); + } + } + log(message, context) { + if (this.console) { + super.log(message, context); + } + if (this.logger) { + this.logger.info({ message, context }); + } + } + error(message, trace, context) { + if (this.console) { + super.error(message, trace, context); + } + if (this.logger) { + this.logger.error({ message, trace, context }); + } + } + warn(message, context) { + if (this.console) { + super.warn(message, context); + } + if (this.logger) { + this.logger.warn({ message, context }); + } + } + debug(message, context) { + if (this.console) { + super.debug(message, context); + } + if (this.logger) { + this.logger.debug({ message, context }); + } + } + verbose(message, context) { + if (this.console) { + super.verbose(message, context); + } + if (this.logger) { + this.logger.verbose({ message, context }); + } + } +}; +WinstonLogger.DEFAULT_LOG_LEVEL = 'info'; +WinstonLogger = __decorate([ + __param(0, common_1.Optional()), + __metadata("design:paramtypes", [config_1.ConfigService]) +], WinstonLogger); +exports.WinstonLogger = WinstonLogger; +//# sourceMappingURL=winston.logger.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/logger/winston.logger.js.map b/node_development/node_backend/dist/app/shared/logger/winston.logger.js.map new file mode 100644 index 0000000..22bb10e --- /dev/null +++ b/node_development/node_backend/dist/app/shared/logger/winston.logger.js.map @@ -0,0 +1 @@ +{"version":3,"file":"winston.logger.js","sourceRoot":"","sources":["../../../../src/app/shared/logger/winston.logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAmD;AACnD,2CAA4D;AAC5D,mCAAmC;AAGnC,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,eAAM;IAKvC,YAAyC,aAAqC;;QAC5E,KAAK,EAAE,CAAC;QAD+B,kBAAa,GAAb,aAAa,CAAwB;QAHtE,YAAO,GAAG,IAAI,CAAC;QAKrB,MAAM,QAAQ,GAAG,CAAA,YAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,CAAC,YAAY,0CAAE,WAAY,KAAI,aAAa,CAAC,iBAAiB,CAAC;QAC1G,MAAM,UAAU,eAAG,IAAI,CAAC,aAAa,0CAAE,MAAM,CAAC,YAAY,0CAAE,cAAc,CAAC;QAC3E,MAAM,QAAQ,eAAG,IAAI,CAAC,aAAa,0CAAE,MAAM,CAAC,YAAY,0CAAE,YAAY,CAAC;QACvE,MAAM,UAAU,GAAU,EAAE,CAAC;QAE7B,IAAI,aAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,CAAC,YAAY,0CAAE,OAAO,MAAK,SAAS,EAAE;YAClE,IAAI,CAAC,OAAO,eAAG,IAAI,CAAC,aAAa,0CAAE,MAAM,CAAC,YAAY,0CAAE,OAAO,CAAC;SACjE;QAED,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,IAAI,CACb,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,UAAU;aACrB,CAAC,CACH,CAAC;SACH;QAED,IAAI,QAAQ,EAAE;YACZ,UAAU,CAAC,IAAI,CACb,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,OAAO;aACf,CAAC,CACH,CAAC;SACH;QAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjF,KAAK,EAAE,QAAQ;gBACf,UAAU;aACX,CAAC,CAAC;SACJ;IACH,CAAC;IAED,cAAc,CAAC,KAAyE;QACtF,MAAM,YAAY,GAAe,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9E,IAAI,eAAe,GAAW,KAAK,CAAC;QAEpC,IAAI,eAAe,KAAK,MAAM,IAAI,eAAe,KAAK,MAAM,EAAE;YAC5D,eAAe,GAAG,KAAK,CAAC;SACzB;QAED,IAAI,eAAe,KAAK,OAAO,EAAE;YAC/B,eAAe,GAAG,OAAO,CAAC;SAC3B;QAED,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC;QAE/D,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;YACd,eAAM,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;SAChD;IACH,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,OAAgB;QACnC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;SACxC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAa,EAAE,OAAgB;QACpD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SACtC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;SAChD;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAgB;QACpC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC9B;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;SACxC;IACH,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,OAAgB;QAClC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC/B;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;SACzC;IACH,CAAC;IAED,OAAO,CAAC,OAAY,EAAE,OAAgB;QACpC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;SAC3C;IACH,CAAC;CACF,CAAA;AA1GgB,+BAAiB,GAAG,MAAM,CAAC;AAD/B,aAAa;IAKX,WAAA,iBAAQ,EAAE,CAAA;qCAAkC,sBAAa;GAL3D,aAAa,CA2GzB;AA3GY,sCAAa"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/model/config/config.model.d.ts b/node_development/node_backend/dist/app/shared/model/config/config.model.d.ts new file mode 100644 index 0000000..ff5f78f --- /dev/null +++ b/node_development/node_backend/dist/app/shared/model/config/config.model.d.ts @@ -0,0 +1,20 @@ +import { BaseConfig } from '@devon4node/config'; +import { ConnectionOptions } from 'typeorm'; +import { JwtModuleOptions } from '@nestjs/jwt'; +export declare class LoggerConfiguration { + loggerLevel?: 'error' | 'warn' | 'info' | 'http' | 'verbose' | 'debug' | 'silly'; + generalLogFile?: string; + errorLogFile?: string; + console?: boolean; +} +export declare class SwaggerConfig { + swaggerTitle: string; + swaggerDescription: string; + swaggerVersion: string; +} +export declare class Config extends BaseConfig { + loggerConfig?: LoggerConfiguration; + database: ConnectionOptions; + swaggerConfig?: SwaggerConfig; + jwtConfig: JwtModuleOptions; +} diff --git a/node_development/node_backend/dist/app/shared/model/config/config.model.js b/node_development/node_backend/dist/app/shared/model/config/config.model.js new file mode 100644 index 0000000..423ca25 --- /dev/null +++ b/node_development/node_backend/dist/app/shared/model/config/config.model.js @@ -0,0 +1,83 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Config = exports.SwaggerConfig = exports.LoggerConfiguration = void 0; +const config_1 = require("@devon4node/config"); +const class_transformer_1 = require("class-transformer"); +const class_validator_1 = require("class-validator"); +class LoggerConfiguration { +} +__decorate([ + class_validator_1.IsOptional(), + class_validator_1.IsString(), + class_validator_1.IsIn(['error', 'warn', 'info', 'http', 'verbose', 'debug', 'silly']), + __metadata("design:type", String) +], LoggerConfiguration.prototype, "loggerLevel", void 0); +__decorate([ + class_validator_1.IsOptional(), + class_validator_1.IsString(), + __metadata("design:type", String) +], LoggerConfiguration.prototype, "generalLogFile", void 0); +__decorate([ + class_validator_1.IsOptional(), + class_validator_1.IsString(), + __metadata("design:type", String) +], LoggerConfiguration.prototype, "errorLogFile", void 0); +__decorate([ + class_validator_1.IsOptional(), + class_validator_1.IsBoolean(), + __metadata("design:type", Boolean) +], LoggerConfiguration.prototype, "console", void 0); +exports.LoggerConfiguration = LoggerConfiguration; +class SwaggerConfig { +} +__decorate([ + class_validator_1.IsDefined(), + class_validator_1.IsString(), + __metadata("design:type", String) +], SwaggerConfig.prototype, "swaggerTitle", void 0); +__decorate([ + class_validator_1.IsDefined(), + class_validator_1.IsString(), + __metadata("design:type", String) +], SwaggerConfig.prototype, "swaggerDescription", void 0); +__decorate([ + class_validator_1.IsDefined(), + class_validator_1.IsString(), + __metadata("design:type", String) +], SwaggerConfig.prototype, "swaggerVersion", void 0); +exports.SwaggerConfig = SwaggerConfig; +class Config extends config_1.BaseConfig { +} +__decorate([ + class_validator_1.IsOptional(), + class_validator_1.ValidateNested(), + class_transformer_1.Type(() => LoggerConfiguration), + __metadata("design:type", LoggerConfiguration) +], Config.prototype, "loggerConfig", void 0); +__decorate([ + class_validator_1.IsDefined(), + class_validator_1.IsNotEmptyObject(), + __metadata("design:type", Object) +], Config.prototype, "database", void 0); +__decorate([ + class_validator_1.IsDefined(), + class_validator_1.ValidateNested(), + class_transformer_1.Type(() => SwaggerConfig), + __metadata("design:type", SwaggerConfig) +], Config.prototype, "swaggerConfig", void 0); +__decorate([ + class_validator_1.IsDefined(), + class_validator_1.IsNotEmptyObject(), + __metadata("design:type", Object) +], Config.prototype, "jwtConfig", void 0); +exports.Config = Config; +//# sourceMappingURL=config.model.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/model/config/config.model.js.map b/node_development/node_backend/dist/app/shared/model/config/config.model.js.map new file mode 100644 index 0000000..e039d0d --- /dev/null +++ b/node_development/node_backend/dist/app/shared/model/config/config.model.js.map @@ -0,0 +1 @@ +{"version":3,"file":"config.model.js","sourceRoot":"","sources":["../../../../../src/app/shared/model/config/config.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAgD;AAChD,yDAAyC;AACzC,qDAAqH;AAIrH,MAAa,mBAAmB;CAc/B;AAVC;IAHC,4BAAU,EAAE;IACZ,0BAAQ,EAAE;IACV,sBAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;;wDACY;AAGjF;IAFC,4BAAU,EAAE;IACZ,0BAAQ,EAAE;;2DACa;AAGxB;IAFC,4BAAU,EAAE;IACZ,0BAAQ,EAAE;;yDACW;AAGtB;IAFC,4BAAU,EAAE;IACZ,2BAAS,EAAE;;oDACM;AAbpB,kDAcC;AACD,MAAa,aAAa;CAUzB;AAPC;IAFC,2BAAS,EAAE;IACX,0BAAQ,EAAE;;mDACW;AAGtB;IAFC,2BAAS,EAAE;IACX,0BAAQ,EAAE;;yDACiB;AAG5B;IAFC,2BAAS,EAAE;IACX,0BAAQ,EAAE;;qDACa;AAT1B,sCAUC;AAED,MAAa,MAAO,SAAQ,mBAAU;CAerC;AAXC;IAHC,4BAAU,EAAE;IACZ,gCAAc,EAAE;IAChB,wBAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC;8BACjB,mBAAmB;4CAAC;AAGnC;IAFC,2BAAS,EAAE;IACX,kCAAgB,EAAE;;wCACU;AAI7B;IAHC,2BAAS,EAAE;IACX,gCAAc,EAAE;IAChB,wBAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;8BACV,aAAa;6CAAC;AAG9B;IAFC,2BAAS,EAAE;IACX,kCAAgB,EAAE;;yCACU;AAd/B,wBAeC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.d.ts b/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.d.ts new file mode 100644 index 0000000..2b2c81c --- /dev/null +++ b/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.d.ts @@ -0,0 +1,6 @@ +export declare abstract class BaseEntity { + id: number; + version: number; + createdAt: string; + updatedAt: string; +} diff --git a/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.js b/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.js new file mode 100644 index 0000000..e8d3db6 --- /dev/null +++ b/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.js @@ -0,0 +1,45 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BaseEntity = void 0; +const openapi = require("@nestjs/swagger"); +const typeorm_1 = require("typeorm"); +const class_transformer_1 = require("class-transformer"); +const swagger_1 = require("@nestjs/swagger"); +class BaseEntity { + static _OPENAPI_METADATA_FACTORY() { + return { id: { required: true, type: () => Number } }; + } +} +__decorate([ + typeorm_1.PrimaryGeneratedColumn('increment'), + __metadata("design:type", Number) +], BaseEntity.prototype, "id", void 0); +__decorate([ + typeorm_1.VersionColumn({ default: 1 }), + class_transformer_1.Exclude({ toPlainOnly: true }), + swagger_1.ApiHideProperty(), + __metadata("design:type", Number) +], BaseEntity.prototype, "version", void 0); +__decorate([ + typeorm_1.CreateDateColumn(), + class_transformer_1.Exclude({ toPlainOnly: true }), + swagger_1.ApiHideProperty(), + __metadata("design:type", String) +], BaseEntity.prototype, "createdAt", void 0); +__decorate([ + typeorm_1.UpdateDateColumn(), + class_transformer_1.Exclude({ toPlainOnly: true }), + swagger_1.ApiHideProperty(), + __metadata("design:type", String) +], BaseEntity.prototype, "updatedAt", void 0); +exports.BaseEntity = BaseEntity; +//# sourceMappingURL=base-entity.entity.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.js.map b/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.js.map new file mode 100644 index 0000000..030774e --- /dev/null +++ b/node_development/node_backend/dist/app/shared/model/entities/base-entity.entity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"base-entity.entity.js","sourceRoot":"","sources":["../../../../../src/app/shared/model/entities/base-entity.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAAoG;AACpG,yDAA4C;AAC5C,6CAAkD;AAElD,MAAsB,UAAU;;;;CAkB/B;AAhBC;IADC,gCAAsB,CAAC,WAAW,CAAC;;sCACxB;AAKZ;IAHC,uBAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC7B,2BAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9B,yBAAe,EAAE;;2CACD;AAKjB;IAHC,0BAAgB,EAAE;IAClB,2BAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9B,yBAAe,EAAE;;6CACC;AAKnB;IAHC,0BAAgB,EAAE;IAClB,2BAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9B,yBAAe,EAAE;;6CACC;AAjBrB,gCAkBC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/config/default.d.ts b/node_development/node_backend/dist/config/default.d.ts new file mode 100644 index 0000000..7e46726 --- /dev/null +++ b/node_development/node_backend/dist/config/default.d.ts @@ -0,0 +1,3 @@ +import { Config } from '../app/shared/model/config/config.model'; +declare const def: Config; +export default def; diff --git a/node_development/node_backend/dist/config/default.js b/node_development/node_backend/dist/config/default.js new file mode 100644 index 0000000..9bf44e1 --- /dev/null +++ b/node_development/node_backend/dist/config/default.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const def = { + isDev: true, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: true, + errorLogFile: './logs/error.log', + generalLogFile: './logs/general.log', + loggerLevel: 'info', + }, + database: require('../../ormconfig.json'), + swaggerConfig: { + swaggerTitle: 'NestJS Application', + swaggerDescription: 'API Documentation', + swaggerVersion: '0.0.1', + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; +exports.default = def; +//# sourceMappingURL=default.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/config/default.js.map b/node_development/node_backend/dist/config/default.js.map new file mode 100644 index 0000000..c533eb2 --- /dev/null +++ b/node_development/node_backend/dist/config/default.js.map @@ -0,0 +1 @@ +{"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/config/default.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAW;IAClB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE;QACZ,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,kBAAkB;QAChC,cAAc,EAAE,oBAAoB;QACpC,WAAW,EAAE,MAAM;KACpB;IACD,QAAQ,EAAE,OAAO,CAAC,sBAAsB,CAAC;IACzC,aAAa,EAAE;QACb,YAAY,EAAE,oBAAoB;QAClC,kBAAkB,EAAE,mBAAmB;QACvC,cAAc,EAAE,OAAO;KACxB;IACD,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;CACnE,CAAC;AAEF,kBAAe,GAAG,CAAC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/config/develop.d.ts b/node_development/node_backend/dist/config/develop.d.ts new file mode 100644 index 0000000..7e46726 --- /dev/null +++ b/node_development/node_backend/dist/config/develop.d.ts @@ -0,0 +1,3 @@ +import { Config } from '../app/shared/model/config/config.model'; +declare const def: Config; +export default def; diff --git a/node_development/node_backend/dist/config/develop.js b/node_development/node_backend/dist/config/develop.js new file mode 100644 index 0000000..4d7dc04 --- /dev/null +++ b/node_development/node_backend/dist/config/develop.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const def = { + isDev: false, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: true, + errorLogFile: './logs/error.log', + generalLogFile: './logs/general.log', + loggerLevel: 'info', + }, + database: { + type: 'sqlite', + database: ':memory:', + synchronize: false, + migrationsRun: true, + logging: true, + entities: ['dist/**/*.entity.js'], + migrations: ['dist/migration/**/*.js'], + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + subscribersDir: 'src/subscriber', + }, + }, + swaggerConfig: { + swaggerTitle: 'NestJS Application', + swaggerDescription: 'API Documentation', + swaggerVersion: '0.0.1', + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; +exports.default = def; +//# sourceMappingURL=develop.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/config/develop.js.map b/node_development/node_backend/dist/config/develop.js.map new file mode 100644 index 0000000..066f03e --- /dev/null +++ b/node_development/node_backend/dist/config/develop.js.map @@ -0,0 +1 @@ +{"version":3,"file":"develop.js","sourceRoot":"","sources":["../../src/config/develop.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAW;IAClB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE;QACZ,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,kBAAkB;QAChC,cAAc,EAAE,oBAAoB;QACpC,WAAW,EAAE,MAAM;KACpB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,CAAC,qBAAqB,CAAC;QACjC,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,WAAW,EAAE,CAAC,yBAAyB,CAAC;QACxC,GAAG,EAAE;YACH,WAAW,EAAE,YAAY;YACzB,aAAa,EAAE,eAAe;YAC9B,cAAc,EAAE,gBAAgB;SACjC;KACF;IACD,aAAa,EAAE;QACb,YAAY,EAAE,oBAAoB;QAClC,kBAAkB,EAAE,mBAAmB;QACvC,cAAc,EAAE,OAAO;KACxB;IACD,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;CACnE,CAAC;AAEF,kBAAe,GAAG,CAAC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/config/production.d.ts b/node_development/node_backend/dist/config/production.d.ts new file mode 100644 index 0000000..7e46726 --- /dev/null +++ b/node_development/node_backend/dist/config/production.d.ts @@ -0,0 +1,3 @@ +import { Config } from '../app/shared/model/config/config.model'; +declare const def: Config; +export default def; diff --git a/node_development/node_backend/dist/config/production.js b/node_development/node_backend/dist/config/production.js new file mode 100644 index 0000000..10ccad2 --- /dev/null +++ b/node_development/node_backend/dist/config/production.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const def = { + isDev: false, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: false, + errorLogFile: './logs/error.log', + generalLogFile: './logs/general.log', + loggerLevel: 'warn', + }, + database: { + type: 'sqlite', + database: ':memory:', + synchronize: false, + migrationsRun: true, + logging: true, + entities: ['dist/**/*.entity.js'], + migrations: ['dist/migration/**/*.js'], + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + subscribersDir: 'src/subscriber', + }, + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; +exports.default = def; +//# sourceMappingURL=production.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/config/production.js.map b/node_development/node_backend/dist/config/production.js.map new file mode 100644 index 0000000..5f762de --- /dev/null +++ b/node_development/node_backend/dist/config/production.js.map @@ -0,0 +1 @@ +{"version":3,"file":"production.js","sourceRoot":"","sources":["../../src/config/production.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAW;IAClB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,kBAAkB;QAChC,cAAc,EAAE,oBAAoB;QACpC,WAAW,EAAE,MAAM;KACpB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,CAAC,qBAAqB,CAAC;QACjC,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,WAAW,EAAE,CAAC,yBAAyB,CAAC;QACxC,GAAG,EAAE;YACH,WAAW,EAAE,YAAY;YACzB,aAAa,EAAE,eAAe;YAC9B,cAAc,EAAE,gBAAgB;SACjC;KACF;IACD,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;CACnE,CAAC;AAEF,kBAAe,GAAG,CAAC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/config/test.d.ts b/node_development/node_backend/dist/config/test.d.ts new file mode 100644 index 0000000..7e46726 --- /dev/null +++ b/node_development/node_backend/dist/config/test.d.ts @@ -0,0 +1,3 @@ +import { Config } from '../app/shared/model/config/config.model'; +declare const def: Config; +export default def; diff --git a/node_development/node_backend/dist/config/test.js b/node_development/node_backend/dist/config/test.js new file mode 100644 index 0000000..4e1ac0c --- /dev/null +++ b/node_development/node_backend/dist/config/test.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const def = { + isDev: true, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: false, + loggerLevel: 'info', + }, + database: { + type: 'sqlite', + database: ':memory:', + synchronize: false, + migrationsRun: true, + logging: true, + entities: ['dist/**/*.entity.js'], + migrations: ['dist/migration/**/*.js'], + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + subscribersDir: 'src/subscriber', + }, + }, + swaggerConfig: { + swaggerTitle: 'NestJS Application', + swaggerDescription: 'API Documentation', + swaggerVersion: '0.0.1', + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; +exports.default = def; +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/config/test.js.map b/node_development/node_backend/dist/config/test.js.map new file mode 100644 index 0000000..0083676 --- /dev/null +++ b/node_development/node_backend/dist/config/test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/config/test.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAW;IAClB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,MAAM;KACpB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,CAAC,qBAAqB,CAAC;QACjC,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,WAAW,EAAE,CAAC,yBAAyB,CAAC;QACxC,GAAG,EAAE;YACH,WAAW,EAAE,YAAY;YACzB,aAAa,EAAE,eAAe;YAC9B,cAAc,EAAE,gBAAgB;SACjC;KACF;IACD,aAAa,EAAE;QACb,YAAY,EAAE,oBAAoB;QAClC,kBAAkB,EAAE,mBAAmB;QACvC,cAAc,EAAE,OAAO;KACxB;IACD,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;CACnE,CAAC;AAEF,kBAAe,GAAG,CAAC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/config/uat.d.ts b/node_development/node_backend/dist/config/uat.d.ts new file mode 100644 index 0000000..7e46726 --- /dev/null +++ b/node_development/node_backend/dist/config/uat.d.ts @@ -0,0 +1,3 @@ +import { Config } from '../app/shared/model/config/config.model'; +declare const def: Config; +export default def; diff --git a/node_development/node_backend/dist/config/uat.js b/node_development/node_backend/dist/config/uat.js new file mode 100644 index 0000000..f485375 --- /dev/null +++ b/node_development/node_backend/dist/config/uat.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const def = { + isDev: false, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: false, + errorLogFile: './logs/error.log', + generalLogFile: './logs/general.log', + loggerLevel: 'warn', + }, + database: { + type: 'sqlite', + database: ':memory:', + synchronize: false, + migrationsRun: true, + logging: true, + entities: ['dist/**/*.entity.js'], + migrations: ['dist/migration/**/*.js'], + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + subscribersDir: 'src/subscriber', + }, + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; +exports.default = def; +//# sourceMappingURL=uat.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/config/uat.js.map b/node_development/node_backend/dist/config/uat.js.map new file mode 100644 index 0000000..3f4f707 --- /dev/null +++ b/node_development/node_backend/dist/config/uat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"uat.js","sourceRoot":"","sources":["../../src/config/uat.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAW;IAClB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE;QACZ,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,kBAAkB;QAChC,cAAc,EAAE,oBAAoB;QACpC,WAAW,EAAE,MAAM;KACpB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,CAAC,qBAAqB,CAAC;QACjC,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,WAAW,EAAE,CAAC,yBAAyB,CAAC;QACxC,GAAG,EAAE;YACH,WAAW,EAAE,YAAY;YACzB,aAAa,EAAE,eAAe;YAC9B,cAAc,EAAE,gBAAgB;SACjC;KACF;IACD,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;CACnE,CAAC;AAEF,kBAAe,GAAG,CAAC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/main.d.ts b/node_development/node_backend/dist/main.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_development/node_backend/dist/main.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/node_development/node_backend/dist/main.js b/node_development/node_backend/dist/main.js new file mode 100644 index 0000000..47e8076 --- /dev/null +++ b/node_development/node_backend/dist/main.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const core_1 = require("@nestjs/core"); +const app_module_1 = require("./app/app.module"); +const winston_logger_1 = require("./app/shared/logger/winston.logger"); +const common_1 = require("@nestjs/common"); +const config_1 = require("@devon4node/config"); +const helmet = require("helmet"); +const swagger_1 = require("@nestjs/swagger"); +async function bootstrap() { + const app = await core_1.NestFactory.create(app_module_1.AppModule, { logger: new winston_logger_1.WinstonLogger() }); + const configModule = app.get(config_1.ConfigService); + app.useGlobalPipes(new common_1.ValidationPipe({ + transform: true, + })); + app.setGlobalPrefix(configModule.values.globalPrefix); + app.use(helmet()); + app.enableCors({ + origin: '*', + credentials: true, + exposedHeaders: 'Authorization', + allowedHeaders: 'authorization, content-type', + }); + if (configModule.values.isDev) { + const options = new swagger_1.DocumentBuilder() + .setTitle(configModule.values.swaggerConfig.swaggerTitle) + .setDescription(configModule.values.swaggerConfig.swaggerDescription) + .setVersion(configModule.values.swaggerConfig.swaggerVersion) + .addBearerAuth() + .build(); + const swaggerDoc = swagger_1.SwaggerModule.createDocument(app, options); + swagger_1.SwaggerModule.setup((configModule.values.globalPrefix || '') + '/api', app, swaggerDoc); + } + await app.listen(configModule.values.port); +} +bootstrap(); +//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/main.js.map b/node_development/node_backend/dist/main.js.map new file mode 100644 index 0000000..18f2f62 --- /dev/null +++ b/node_development/node_backend/dist/main.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,iDAA6C;AAC7C,uEAAmE;AACnE,2CAAgD;AAChD,+CAAmD;AACnD,iCAAiC;AACjC,6CAAiE;AAEjE,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,EAAE,EAAE,MAAM,EAAE,IAAI,8BAAa,EAAE,EAAE,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,sBAAa,CAAC,CAAC;IAC5C,GAAG,CAAC,cAAc,CAChB,IAAI,uBAAc,CAAC;QACjB,SAAS,EAAE,IAAI;KAChB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACtD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,UAAU,CAAC;QACb,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,eAAe;QAC/B,cAAc,EAAE,6BAA6B;KAC9C,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE;QAC7B,MAAM,OAAO,GAAG,IAAI,yBAAe,EAAE;aAClC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;aACxD,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC;aACpE,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;aAC5D,aAAa,EAAE;aACf,KAAK,EAAE,CAAC;QAEX,MAAM,UAAU,GAAG,uBAAa,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9D,uBAAa,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;KACzF;IACD,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AACD,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/migration/1609823263069-CreateTables.d.ts b/node_development/node_backend/dist/migration/1609823263069-CreateTables.d.ts new file mode 100644 index 0000000..7af6583 --- /dev/null +++ b/node_development/node_backend/dist/migration/1609823263069-CreateTables.d.ts @@ -0,0 +1,6 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; +export declare class CreateTables1609823263069 implements MigrationInterface { + name: string; + up(queryRunner: QueryRunner): Promise; + down(queryRunner: QueryRunner): Promise; +} diff --git a/node_development/node_backend/dist/migration/1609823263069-CreateTables.js b/node_development/node_backend/dist/migration/1609823263069-CreateTables.js new file mode 100644 index 0000000..940469d --- /dev/null +++ b/node_development/node_backend/dist/migration/1609823263069-CreateTables.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CreateTables1609823263069 = void 0; +class CreateTables1609823263069 { + constructor() { + this.name = 'CreateTables1609823263069'; + } + async up(queryRunner) { + await queryRunner.query(`CREATE TABLE "user" + ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "version" integer NOT NULL DEFAULT (1), + "createdAt" datetime NOT NULL DEFAULT (datetime('now')), + "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "username" varchar(255) NOT NULL, + "name" varchar(255) NOT NULL, "phoneNumber" varchar(255) NOT NULL, + "password" varchar(255) NOT NULL, "acceptedCommercial" integer DEFAULT (1), + "acceptedTerms" integer DEFAULT (1), "role" integer NOT NULL DEFAULT (0))`); + await queryRunner.query(`CREATE TABLE "event" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "version" integer NOT NULL DEFAULT (1), "createdAt" datetime NOT NULL DEFAULT (datetime('now')), + "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "eventName" varchar(255) NOT NULL, + "startDate" varchar, "endDate" varchar, "location" varchar(255) NOT NULL, + "description" varchar(255) NOT NULL, "attentionTime" varchar NOT NULL, + "visitorCount" integer NOT NULL)`); + await queryRunner.query(`CREATE TABLE "queue_detail"( + "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "version" integer NOT NULL DEFAULT (1), + "createdAt" datetime NOT NULL DEFAULT (datetime('now')), + "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), + "queueNumber" VARCHAR(255), + "minEstimatedTime" VARCHAR(255), + idUser BIGINT, idEvent BIGINT, + FOREIGN KEY(idUser) REFERENCES user(id), + FOREIGN KEY(idEvent) REFERENCES event(id))`); + } + async down(queryRunner) { + await queryRunner.query(`DROP TABLE "queue_detail"`); + await queryRunner.query(`DROP TABLE "event"`); + await queryRunner.query(`DROP TABLE "user"`); + } +} +exports.CreateTables1609823263069 = CreateTables1609823263069; +//# sourceMappingURL=1609823263069-CreateTables.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/migration/1609823263069-CreateTables.js.map b/node_development/node_backend/dist/migration/1609823263069-CreateTables.js.map new file mode 100644 index 0000000..33efc72 --- /dev/null +++ b/node_development/node_backend/dist/migration/1609823263069-CreateTables.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1609823263069-CreateTables.js","sourceRoot":"","sources":["../../src/migration/1609823263069-CreateTables.ts"],"names":[],"mappings":";;;AAEA,MAAa,yBAAyB;IAAtC;QACI,SAAI,GAAG,2BAA2B,CAAA;IAoCtC,CAAC;IAlCU,KAAK,CAAC,EAAE,CAAC,WAAwB;QACpC,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;kFAMkD,CAAC,CAAC;QAE5E,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;yCAKS,CAAC,CAAC;QAEnC,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;mDAQmB,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QAEtC,MAAM,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,MAAM,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC9C,MAAM,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC;CAEJ;AArCD,8DAqCC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/migration/1609823284132-InsertData.d.ts b/node_development/node_backend/dist/migration/1609823284132-InsertData.d.ts new file mode 100644 index 0000000..1246f7d --- /dev/null +++ b/node_development/node_backend/dist/migration/1609823284132-InsertData.d.ts @@ -0,0 +1,6 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; +export declare class InsertData1609823284132 implements MigrationInterface { + name: string; + up(queryRunner: QueryRunner): Promise; + down(queryRunner: QueryRunner): Promise; +} diff --git a/node_development/node_backend/dist/migration/1609823284132-InsertData.js b/node_development/node_backend/dist/migration/1609823284132-InsertData.js new file mode 100644 index 0000000..e49444a --- /dev/null +++ b/node_development/node_backend/dist/migration/1609823284132-InsertData.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.InsertData1609823284132 = void 0; +const bcrypt_1 = require("bcrypt"); +const roles_enum_1 = require("../app/core/auth/model/roles.enum"); +class InsertData1609823284132 { + constructor() { + this.name = 'InsertData1609823284132'; + } + async up(queryRunner) { + await queryRunner.query(`INSERT INTO USER(id, username,name,phoneNumber,password,acceptedCommercial,acceptedTerms,role) VALUES(?, ?, ?, ?,?,?,?,?);`, [ + 1, + 'user', + 'user', + '1212121212', + await bcrypt_1.hash('password', await bcrypt_1.genSalt(12)), + 1, + 1, + roles_enum_1.roles.USER, + ]); + await queryRunner.query(`INSERT INTO USER(id, username,name,phoneNumber,password,acceptedCommercial,acceptedTerms,role) VALUES(?, ?, ?, ?,?,?,?,?);`, [ + 3, + 'azhar@gmail.com', + 'Azhar', + '8734231265', + await bcrypt_1.hash('Azhar@123', await bcrypt_1.genSalt(12)), + 1, + 1, + roles_enum_1.roles.USER, + ]); + await queryRunner.query(`INSERT INTO USER(id, username,name,phoneNumber,password,acceptedCommercial,acceptedTerms,role) VALUES(?, ?, ?, ?,?,?,?,?);`, [ + 4, + 'ayushi@gmail.com', + 'Ayushi', + '7837263134', + await bcrypt_1.hash('Ayushi@123', await bcrypt_1.genSalt(12)), + 1, + 1, + roles_enum_1.roles.USER, + ]); + await queryRunner.query(`INSERT INTO USER(id, username,name,phoneNumber,password,acceptedCommercial,acceptedTerms,role) VALUES(?, ?, ?, ?,?,?,?,?);`, [ + 2, + 'admin', + 'admin', + '9898989898', + await bcrypt_1.hash('admin', await bcrypt_1.genSalt(12)), + 1, + 1, + roles_enum_1.roles.ADMIN, + ]); + await queryRunner.query(`INSERT INTO EVENT(id,eventName,startDate,endDate, location, description,attentionTime, + visitorCount) VALUES (1,'Rebecca','27-12-2020',null,'kolkata','Cultural Event','5 minutes',0);`); + await queryRunner.query(`INSERT INTO EVENT(id,eventName,startDate,endDate, location, description,attentionTime, + visitorCount) + VALUES (2,'Reflexobeta','28-12-2020',null,'Bangalore','Dancing Event','5 minutes',0);`); + await queryRunner.query(`INSERT INTO EVENT(id,eventName,startDate,endDate, location, description,attentionTime, + visitorCount) VALUES (3,'Orkotan','29-12-2020',null,'Mumbai','Musical Event','5 minutes',0);`); + } + async down(queryRunner) { + console.log(queryRunner); + await queryRunner.query(`DROP TABLE "queue_detail"`); + await queryRunner.query(`DROP TABLE "event"`); + await queryRunner.query(`DROP TABLE "user"`); + } +} +exports.InsertData1609823284132 = InsertData1609823284132; +//# sourceMappingURL=1609823284132-InsertData.js.map \ No newline at end of file diff --git a/node_development/node_backend/dist/migration/1609823284132-InsertData.js.map b/node_development/node_backend/dist/migration/1609823284132-InsertData.js.map new file mode 100644 index 0000000..5de24af --- /dev/null +++ b/node_development/node_backend/dist/migration/1609823284132-InsertData.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1609823284132-InsertData.js","sourceRoot":"","sources":["../../src/migration/1609823284132-InsertData.ts"],"names":[],"mappings":";;;AAAA,mCAAuC;AAEvC,kEAA0D;AAE1D,MAAa,uBAAuB;IAApC;QACI,SAAI,GAAG,yBAAyB,CAAA;IAqFpC,CAAC;IAnFU,KAAK,CAAC,EAAE,CAAC,WAAwB;QAEpC,MAAM,WAAW,CAAC,KAAK,CAAC,4HAA4H,EAAE;YAClJ,CAAC;YACD,MAAM;YACN,MAAM;YACN,YAAY;YACZ,MAAM,aAAI,CAAC,UAAU,EAAE,MAAM,gBAAO,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,CAAC;YACD,kBAAK,CAAC,IAAI;SACb,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,KAAK,CAAC,4HAA4H,EAAE;YAClJ,CAAC;YACD,iBAAiB;YACjB,OAAO;YACP,YAAY;YACZ,MAAM,aAAI,CAAC,WAAW,EAAE,MAAM,gBAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,CAAC;YACD,kBAAK,CAAC,IAAI;SACb,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,KAAK,CAAC,4HAA4H,EAAE;YAClJ,CAAC;YACD,kBAAkB;YAClB,QAAQ;YACR,YAAY;YACZ,MAAM,aAAI,CAAC,YAAY,EAAE,MAAM,gBAAO,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,CAAC;YACD,kBAAK,CAAC,IAAI;SACb,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,KAAK,CAAC,4HAA4H,EAAE;YAClJ,CAAC;YACD,OAAO;YACP,OAAO;YACP,YAAY;YACZ,MAAM,aAAI,CAAC,OAAO,EAAE,MAAM,gBAAO,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,CAAC;YACD,kBAAK,CAAC,KAAK;SACd,CAAC,CAAC;QAGH,MAAM,WAAW,CAAC,KAAK,CACnB;uGAC2F,CAE9F,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACnB;;8FAEkF,CAErF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACnB;qGACyF,CAE5F,CAAC;IAeN,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACtC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,MAAM,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,MAAM,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC9C,MAAM,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC;CAEJ;AAtFD,0DAsFC"} \ No newline at end of file diff --git a/node_development/node_backend/dist/tsconfig.build.tsbuildinfo b/node_development/node_backend/dist/tsconfig.build.tsbuildinfo new file mode 100644 index 0000000..b076d92 --- /dev/null +++ b/node_development/node_backend/dist/tsconfig.build.tsbuildinfo @@ -0,0 +1,11626 @@ +{ + "program": { + "fileInfos": { + "../node_modules/typescript/lib/lib.es5.d.ts": { + "version": "9622e8bd7cc72a7dab819a8011ecbf81d443638082e5cb99ecf2e75ff56ffc9d", + "signature": "9622e8bd7cc72a7dab819a8011ecbf81d443638082e5cb99ecf2e75ff56ffc9d", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.d.ts": { + "version": "dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6", + "signature": "dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6", + "affectsGlobalScope": false + }, + "../node_modules/typescript/lib/lib.es2016.d.ts": { + "version": "7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467", + "signature": "7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467", + "affectsGlobalScope": false + }, + "../node_modules/typescript/lib/lib.es2017.d.ts": { + "version": "8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9", + "signature": "8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9", + "affectsGlobalScope": false + }, + "../node_modules/typescript/lib/lib.es2018.d.ts": { + "version": "5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06", + "signature": "5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06", + "affectsGlobalScope": false + }, + "../node_modules/typescript/lib/lib.dom.d.ts": { + "version": "abadddbf660adeec27e9a56584907d52fa1d6e1e1dc49f639a921baa951b7a84", + "signature": "abadddbf660adeec27e9a56584907d52fa1d6e1e1dc49f639a921baa951b7a84", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.dom.iterable.d.ts": { + "version": "d42f4141bd9ce82b4e2902f26acb00c183e321be19a38bbc0e76a922c1724c94", + "signature": "d42f4141bd9ce82b4e2902f26acb00c183e321be19a38bbc0e76a922c1724c94", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.webworker.importscripts.d.ts": { + "version": "7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481", + "signature": "7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.scripthost.d.ts": { + "version": "097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd", + "signature": "097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.core.d.ts": { + "version": "46ee15e9fefa913333b61eaf6b18885900b139867d89832a515059b62cf16a17", + "signature": "46ee15e9fefa913333b61eaf6b18885900b139867d89832a515059b62cf16a17", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.collection.d.ts": { + "version": "43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c", + "signature": "43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.generator.d.ts": { + "version": "cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a", + "signature": "cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.iterable.d.ts": { + "version": "8b2a5df1ce95f78f6b74f1a555ccdb6baab0486b42d8345e0871dd82811f9b9a", + "signature": "8b2a5df1ce95f78f6b74f1a555ccdb6baab0486b42d8345e0871dd82811f9b9a", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.promise.d.ts": { + "version": "2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c", + "signature": "2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.proxy.d.ts": { + "version": "7207e317a2cb07a177e7d963ab7b8c0e85dde7f9ddb50351f830239bf597569e", + "signature": "7207e317a2cb07a177e7d963ab7b8c0e85dde7f9ddb50351f830239bf597569e", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.reflect.d.ts": { + "version": "cb609802a8698aa28b9c56331d4b53f590ca3c1c3a255350304ae3d06017779d", + "signature": "cb609802a8698aa28b9c56331d4b53f590ca3c1c3a255350304ae3d06017779d", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.symbol.d.ts": { + "version": "3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93", + "signature": "3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts": { + "version": "9d122b7e8c1a5c72506eea50c0973cba55b92b5532d5cafa8a6ce2c547d57551", + "signature": "9d122b7e8c1a5c72506eea50c0973cba55b92b5532d5cafa8a6ce2c547d57551", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2016.array.include.d.ts": { + "version": "3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006", + "signature": "3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2017.object.d.ts": { + "version": "17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a", + "signature": "17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts": { + "version": "7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98", + "signature": "7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2017.string.d.ts": { + "version": "6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577", + "signature": "6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2017.intl.d.ts": { + "version": "12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d", + "signature": "12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts": { + "version": "b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e", + "signature": "b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts": { + "version": "0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a", + "signature": "0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts": { + "version": "a40c4d82bf13fcded295ac29f354eb7d40249613c15e07b53f2fc75e45e16359", + "signature": "a40c4d82bf13fcded295ac29f354eb7d40249613c15e07b53f2fc75e45e16359", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2018.intl.d.ts": { + "version": "df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e", + "signature": "df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2018.promise.d.ts": { + "version": "bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c", + "signature": "bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2018.regexp.d.ts": { + "version": "c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8", + "signature": "c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2020.bigint.d.ts": { + "version": "7b5a10e3c897fabece5a51aa85b4111727d7adb53c2734b5d37230ff96802a09", + "signature": "7b5a10e3c897fabece5a51aa85b4111727d7adb53c2734b5d37230ff96802a09", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.esnext.intl.d.ts": { + "version": "89bf2b7a601b73ea4311eda9c41f86a58994fec1bee3b87c4a14d68d9adcdcbd", + "signature": "89bf2b7a601b73ea4311eda9c41f86a58994fec1bee3b87c4a14d68d9adcdcbd", + "affectsGlobalScope": true + }, + "../node_modules/typescript/lib/lib.es2017.full.d.ts": { + "version": "d2f31f19e1ba6ed59be9259d660a239d9a3fcbbc8e038c6b2009bde34b175fed", + "signature": "d2f31f19e1ba6ed59be9259d660a239d9a3fcbbc8e038c6b2009bde34b175fed", + "affectsGlobalScope": false + }, + "../node_modules/reflect-metadata/index.d.ts": { + "version": "8d6d51a5118d000ed3bfe6e1dd1335bebfff3fef23cd2af2f84a24d30f90cc90", + "signature": "8d6d51a5118d000ed3bfe6e1dd1335bebfff3fef23cd2af2f84a24d30f90cc90", + "affectsGlobalScope": true + }, + "../node_modules/@nestjs/common/cache/cache.constants.d.ts": { + "version": "3346a737f29b700e7c6c2a694973ceb70a738c3ac5212ffbefac8a27048fa8d6", + "signature": "3346a737f29b700e7c6c2a694973ceb70a738c3ac5212ffbefac8a27048fa8d6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts": { + "version": "e89535c3ec439608bcd0f68af555d0e5ddf121c54abe69343549718bd7506b9c", + "signature": "e89535c3ec439608bcd0f68af555d0e5ddf121c54abe69343549718bd7506b9c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts": { + "version": "622a984b60c294ffb2f9152cf1d4d12e91d2b733d820eec949cf54d63a3c1025", + "signature": "622a984b60c294ffb2f9152cf1d4d12e91d2b733d820eec949cf54d63a3c1025", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts": { + "version": "1a25c4d02a013b4690efa24ab48184a2c10b1906a379565ba558b2c3ba679a6d", + "signature": "1a25c4d02a013b4690efa24ab48184a2c10b1906a379565ba558b2c3ba679a6d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts": { + "version": "ba6f9c5491bcf018dbbc813e1dd488beb26f876b825007ba76db485df341a8ee", + "signature": "ba6f9c5491bcf018dbbc813e1dd488beb26f876b825007ba76db485df341a8ee", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts": { + "version": "75b57b109d774acca1e151df21cf5cb54c7a1df33a273f0457b9aee4ebd36fb9", + "signature": "75b57b109d774acca1e151df21cf5cb54c7a1df33a273f0457b9aee4ebd36fb9", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/subscription.d.ts": { + "version": "6cb35d83d21a7e72bd00398c93302749bcd38349d0cc5e76ff3a90c6d1498a4d", + "signature": "6cb35d83d21a7e72bd00398c93302749bcd38349d0cc5e76ff3a90c6d1498a4d", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/types.d.ts": { + "version": "051451ceae7f29c8f17b810e6a6d8d270c67b401866f487cdc50c5c1a8b3f511", + "signature": "051451ceae7f29c8f17b810e6a6d8d270c67b401866f487cdc50c5c1a8b3f511", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/subscriber.d.ts": { + "version": "2632057d8b983ee33295566088c080384d7d69a492bc60b008d6a6dfd3508d6b", + "signature": "2632057d8b983ee33295566088c080384d7d69a492bc60b008d6a6dfd3508d6b", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/operator.d.ts": { + "version": "4bf71cf2a94492fc71e97800bdf2bcb0a9a0fa5fce921c8fe42c67060780cbfa", + "signature": "4bf71cf2a94492fc71e97800bdf2bcb0a9a0fa5fce921c8fe42c67060780cbfa", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/iif.d.ts": { + "version": "0996ff06f64cb05b6dac158a6ada2e16f8c2ccd20f9ff6f3c3e871f1ba5fb6d9", + "signature": "0996ff06f64cb05b6dac158a6ada2e16f8c2ccd20f9ff6f3c3e871f1ba5fb6d9", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/throwerror.d.ts": { + "version": "5c492d01a19fea5ebfff9d27e786bc533e5078909521ca17ae41236f16f9686a", + "signature": "5c492d01a19fea5ebfff9d27e786bc533e5078909521ca17ae41236f16f9686a", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable.d.ts": { + "version": "a6ee930b81c65ec79aca49025b797817dde6f2d2e9b0e0106f0844e18e2cc819", + "signature": "a6ee930b81c65ec79aca49025b797817dde6f2d2e9b0e0106f0844e18e2cc819", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/subject.d.ts": { + "version": "84fce15473e993e6b656db9dd3c9196b80f545647458e6621675e840fd700d29", + "signature": "84fce15473e993e6b656db9dd3c9196b80f545647458e6621675e840fd700d29", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/connectableobservable.d.ts": { + "version": "7d5336ee766aa72dffb1cc2a515f61d18a4fb61b7a2757cbccfb7b286b783dfb", + "signature": "7d5336ee766aa72dffb1cc2a515f61d18a4fb61b7a2757cbccfb7b286b783dfb", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/operators/groupby.d.ts": { + "version": "63e96248ab63f6e7a86e31aa3e654ed6de1c3f99e3b668e04800df05874e8b77", + "signature": "63e96248ab63f6e7a86e31aa3e654ed6de1c3f99e3b668e04800df05874e8b77", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/symbol/observable.d.ts": { + "version": "ed164267a8b206892d69768f51e6e7157ad0a6e89745fbd39f3e81c4700e9a9e", + "signature": "ed164267a8b206892d69768f51e6e7157ad0a6e89745fbd39f3e81c4700e9a9e", + "affectsGlobalScope": true + }, + "../node_modules/rxjs/internal/behaviorsubject.d.ts": { + "version": "06a20cc7d937074863861ea1159ac783ff97b13952b4b5d1811c7d8ab5c94776", + "signature": "06a20cc7d937074863861ea1159ac783ff97b13952b4b5d1811c7d8ab5c94776", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/replaysubject.d.ts": { + "version": "ab6de4af0e293eae73b67dad251af097d7bcc0b8b62de84e3674e831514cb056", + "signature": "ab6de4af0e293eae73b67dad251af097d7bcc0b8b62de84e3674e831514cb056", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/asyncsubject.d.ts": { + "version": "18cbd79079af97af66c9c07c61b481fce14a4e7282eca078c474b40c970ba1d0", + "signature": "18cbd79079af97af66c9c07c61b481fce14a4e7282eca078c474b40c970ba1d0", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler.d.ts": { + "version": "e7b45405689d87e745a217b648d3646fb47a6aaba9c8d775204de90c7ea9ff35", + "signature": "e7b45405689d87e745a217b648d3646fb47a6aaba9c8d775204de90c7ea9ff35", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/action.d.ts": { + "version": "669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a", + "signature": "669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts": { + "version": "bcfaca4a8ff50f57fd36df91fba5d34056883f213baff7192cbfc4d3805d2084", + "signature": "bcfaca4a8ff50f57fd36df91fba5d34056883f213baff7192cbfc4d3805d2084", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts": { + "version": "76a564b360b267502219a89514953058494713ee0923a63b2024e542c18b40e5", + "signature": "76a564b360b267502219a89514953058494713ee0923a63b2024e542c18b40e5", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/asapscheduler.d.ts": { + "version": "8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25", + "signature": "8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/asap.d.ts": { + "version": "a20629551ed7923f35f7556c4c15d0c8b2ebe7afaa68ceaab079a1707ba64be2", + "signature": "a20629551ed7923f35f7556c4c15d0c8b2ebe7afaa68ceaab079a1707ba64be2", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/async.d.ts": { + "version": "d6de66600c97cd499526ddecea6e12166ab1c0e8d9bf36fb2339fd39c8b3372a", + "signature": "d6de66600c97cd499526ddecea6e12166ab1c0e8d9bf36fb2339fd39c8b3372a", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/queuescheduler.d.ts": { + "version": "8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f", + "signature": "8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/queue.d.ts": { + "version": "a8932876de2e3138a5a27f9426b225a4d27f0ba0a1e2764ba20930b4c3faf4b9", + "signature": "a8932876de2e3138a5a27f9426b225a4d27f0ba0a1e2764ba20930b4c3faf4b9", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts": { + "version": "df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b", + "signature": "df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/animationframe.d.ts": { + "version": "027d600e00c5f5e1816c207854285d736f2f5fa28276e2829db746d5d6811ba1", + "signature": "027d600e00c5f5e1816c207854285d736f2f5fa28276e2829db746d5d6811ba1", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts": { + "version": "5443113a16ef378446e08d6500bb48b35de582426459abdb5c9704f5c7d327d9", + "signature": "5443113a16ef378446e08d6500bb48b35de582426459abdb5c9704f5c7d327d9", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/notification.d.ts": { + "version": "0fb581ecb53304a3c95bb930160b4fa610537470cce850371cbaad5a458ca0d9", + "signature": "0fb581ecb53304a3c95bb930160b4fa610537470cce850371cbaad5a458ca0d9", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/pipe.d.ts": { + "version": "7da4e290c009d7967343a7f8c3f145a3d2c157c62483362183ba9f637a536489", + "signature": "7da4e290c009d7967343a7f8c3f145a3d2c157c62483362183ba9f637a536489", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/noop.d.ts": { + "version": "eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991", + "signature": "eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/identity.d.ts": { + "version": "914560d0c4c6aa947cfe7489fe970c94ba25383c414bbe0168b44fd20dbf0df4", + "signature": "914560d0c4c6aa947cfe7489fe970c94ba25383c414bbe0168b44fd20dbf0df4", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/isobservable.d.ts": { + "version": "4fb3405055b54566dea2135845c3a776339e7e170d692401d97fd41ad9a20e5d", + "signature": "4fb3405055b54566dea2135845c3a776339e7e170d692401d97fd41ad9a20e5d", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/argumentoutofrangeerror.d.ts": { + "version": "8d607832a6ef0eac30657173441367dd76c96bf7800d77193428b922e060c3af", + "signature": "8d607832a6ef0eac30657173441367dd76c96bf7800d77193428b922e060c3af", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/emptyerror.d.ts": { + "version": "20ff7207f0bb5cdde5fee8e83315ade7e5b8100cfa2087d20d39069a3d7d06f4", + "signature": "20ff7207f0bb5cdde5fee8e83315ade7e5b8100cfa2087d20d39069a3d7d06f4", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/objectunsubscribederror.d.ts": { + "version": "7ca4c534eab7cff43d81327e369a23464bc37ef38ce5337ceff24a42c6c84eb2", + "signature": "7ca4c534eab7cff43d81327e369a23464bc37ef38ce5337ceff24a42c6c84eb2", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/unsubscriptionerror.d.ts": { + "version": "5252dec18a34078398be4e321dee884dc7f47930e5225262543a799b591b36d2", + "signature": "5252dec18a34078398be4e321dee884dc7f47930e5225262543a799b591b36d2", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/util/timeouterror.d.ts": { + "version": "23caed4dff98bd28157d2b798b43f1dfefe727f18641648c01ce4e0e929a1630", + "signature": "23caed4dff98bd28157d2b798b43f1dfefe727f18641648c01ce4e0e929a1630", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/bindcallback.d.ts": { + "version": "f67e013d5374826596d7c23dbae1cdb14375a27cd72e16c5fb46a4b445059329", + "signature": "f67e013d5374826596d7c23dbae1cdb14375a27cd72e16c5fb46a4b445059329", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/bindnodecallback.d.ts": { + "version": "ea3401b70e2302683bbf4c18b69ef2292b60f4d8f8e6d920413b81fb7bde0f65", + "signature": "ea3401b70e2302683bbf4c18b69ef2292b60f4d8f8e6d920413b81fb7bde0f65", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/innersubscriber.d.ts": { + "version": "71afe26642c0fb86b9f8b1af4af5deb5181b43b6542a3ff2314871b53d04c749", + "signature": "71afe26642c0fb86b9f8b1af4af5deb5181b43b6542a3ff2314871b53d04c749", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/outersubscriber.d.ts": { + "version": "0d7f01634e6234d84cf0106508efdb8ae00e5ed126eff9606d37b031ac1de654", + "signature": "0d7f01634e6234d84cf0106508efdb8ae00e5ed126eff9606d37b031ac1de654", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/combinelatest.d.ts": { + "version": "f8d209086bad78af6bd7fef063c1ed449c815e6f8d36058115f222d9f788b848", + "signature": "f8d209086bad78af6bd7fef063c1ed449c815e6f8d36058115f222d9f788b848", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/concat.d.ts": { + "version": "3ad003278d569d1953779e2f838f7798f02e793f6a1eceac8e0065f1a202669b", + "signature": "3ad003278d569d1953779e2f838f7798f02e793f6a1eceac8e0065f1a202669b", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/defer.d.ts": { + "version": "fb2c5eceffcd918dbb86332afa0199f5e7b6cf6ee42809e930a827b28ef25afe", + "signature": "fb2c5eceffcd918dbb86332afa0199f5e7b6cf6ee42809e930a827b28ef25afe", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/empty.d.ts": { + "version": "f664aaff6a981eeca68f1ff2d9fd21b6664f47bf45f3ae19874df5a6683a8d8a", + "signature": "f664aaff6a981eeca68f1ff2d9fd21b6664f47bf45f3ae19874df5a6683a8d8a", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/forkjoin.d.ts": { + "version": "ce066f85d73e09e9adbd0049bcf6471c7eefbfc2ec4b5692b5bcef1e36babd2a", + "signature": "ce066f85d73e09e9adbd0049bcf6471c7eefbfc2ec4b5692b5bcef1e36babd2a", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/from.d.ts": { + "version": "09d302513cacfbcc54b67088739bd8ac1c3c57917f83f510b2d1adcb99fd7d2a", + "signature": "09d302513cacfbcc54b67088739bd8ac1c3c57917f83f510b2d1adcb99fd7d2a", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/fromevent.d.ts": { + "version": "3faa54e978b92a6f726440c13fe3ab35993dc74d697c7709681dc1764a25219f", + "signature": "3faa54e978b92a6f726440c13fe3ab35993dc74d697c7709681dc1764a25219f", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/fromeventpattern.d.ts": { + "version": "2bd0489e968925eb0c4c0fb12ef090be5165c86bd088e1e803102c38d4a717d8", + "signature": "2bd0489e968925eb0c4c0fb12ef090be5165c86bd088e1e803102c38d4a717d8", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/generate.d.ts": { + "version": "88924207132b9ba339c1adb1ed3ea07e47b3149ff8a2e21a3ea1f91cee68589d", + "signature": "88924207132b9ba339c1adb1ed3ea07e47b3149ff8a2e21a3ea1f91cee68589d", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/interval.d.ts": { + "version": "b8800b93d8ab532f8915be73f8195b9d4ef06376d8a82e8cdc17c400553172d6", + "signature": "b8800b93d8ab532f8915be73f8195b9d4ef06376d8a82e8cdc17c400553172d6", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/merge.d.ts": { + "version": "d7d469703b78beba76d511957f8c8b534c3bbb02bea7ab4705c65ef573532fb8", + "signature": "d7d469703b78beba76d511957f8c8b534c3bbb02bea7ab4705c65ef573532fb8", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/never.d.ts": { + "version": "74c8c3057669c03264263d911d0f82e876cef50b05be21c54fef23c900de0420", + "signature": "74c8c3057669c03264263d911d0f82e876cef50b05be21c54fef23c900de0420", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/of.d.ts": { + "version": "b303eda2ff2d582a9c3c5ecb708fb57355cdc25e8c8197a9f66d4d1bf09fda19", + "signature": "b303eda2ff2d582a9c3c5ecb708fb57355cdc25e8c8197a9f66d4d1bf09fda19", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/onerrorresumenext.d.ts": { + "version": "4e5dc89fa22ff43da3dee1db97d5add0591ebaff9e4adef6c8b6f0b41f0f60f0", + "signature": "4e5dc89fa22ff43da3dee1db97d5add0591ebaff9e4adef6c8b6f0b41f0f60f0", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/pairs.d.ts": { + "version": "ec4e82cb42a902fe83dc13153c7a260bee95684541f8d7ef26cb0629a2f4ca31", + "signature": "ec4e82cb42a902fe83dc13153c7a260bee95684541f8d7ef26cb0629a2f4ca31", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/partition.d.ts": { + "version": "5f36e24cd92b0ff3e2a243685a8a780c9413941c36739f04b428cc4e15de629d", + "signature": "5f36e24cd92b0ff3e2a243685a8a780c9413941c36739f04b428cc4e15de629d", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/race.d.ts": { + "version": "40a26494e6ab10a91851791169582ab77fed4fbd799518968177e7eefe08c7a9", + "signature": "40a26494e6ab10a91851791169582ab77fed4fbd799518968177e7eefe08c7a9", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/range.d.ts": { + "version": "208e125b45bc561765a74f6f1019d88e44e94678769824cf93726e1bac457961", + "signature": "208e125b45bc561765a74f6f1019d88e44e94678769824cf93726e1bac457961", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/timer.d.ts": { + "version": "b3985971de086ef3aa698ef19009a53527b72e65851b782dc188ac341a1e1390", + "signature": "b3985971de086ef3aa698ef19009a53527b72e65851b782dc188ac341a1e1390", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/using.d.ts": { + "version": "c81d421aabb6113cd98b9d4f11e9a03273b363b841f294b457f37c15d513151d", + "signature": "c81d421aabb6113cd98b9d4f11e9a03273b363b841f294b457f37c15d513151d", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/observable/zip.d.ts": { + "version": "30063e3a184ff31254bbafa782c78a2d6636943dfe59e1a34f451827fd7a68dc", + "signature": "30063e3a184ff31254bbafa782c78a2d6636943dfe59e1a34f451827fd7a68dc", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/scheduled/scheduled.d.ts": { + "version": "c05d4cae0bceed02c9d013360d3e65658297acb1b7a90252fe366f2bf4f9ccc9", + "signature": "c05d4cae0bceed02c9d013360d3e65658297acb1b7a90252fe366f2bf4f9ccc9", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/internal/config.d.ts": { + "version": "6f14b92848889abba03a474e0750f7350cc91fc190c107408ca48679a03975ae", + "signature": "6f14b92848889abba03a474e0750f7350cc91fc190c107408ca48679a03975ae", + "affectsGlobalScope": false + }, + "../node_modules/rxjs/index.d.ts": { + "version": "a588d0765b1d18bf00a498b75a83e095aef75a9300b6c1e91cbf39e408f2fe2f", + "signature": "a588d0765b1d18bf00a498b75a83e095aef75a9300b6c1e91cbf39e408f2fe2f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts": { + "version": "795a08ae4e193f345073b49f68826ab6a9b280400b440906e4ec5c237ae777e6", + "signature": "795a08ae4e193f345073b49f68826ab6a9b280400b440906e4ec5c237ae777e6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts": { + "version": "8153df63cf65122809db17128e5918f59d6bb43a371b5218f4430c4585f64085", + "signature": "8153df63cf65122809db17128e5918f59d6bb43a371b5218f4430c4585f64085", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/external/validation-error.interface.d.ts": { + "version": "ef323c17fe66758bb8d843da4f5676e3a460c26763c0448424b436b9a8101011", + "signature": "ef323c17fe66758bb8d843da4f5676e3a460c26763c0448424b436b9a8101011", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts": { + "version": "5adfaf2f9f33957264ad199a186456a4676b2724ed700fc313ff945d03372169", + "signature": "5adfaf2f9f33957264ad199a186456a4676b2724ed700fc313ff945d03372169", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts": { + "version": "d5c41a741cd408c34cb91f84468f70e9bda3dfeabf33251a61039b3cdb8b22d8", + "signature": "d5c41a741cd408c34cb91f84468f70e9bda3dfeabf33251a61039b3cdb8b22d8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts": { + "version": "6e87c0c1cf06fe7dd6e545d72edefd61d86b4f13d2f9d34140e8168af94a7b7d", + "signature": "6e87c0c1cf06fe7dd6e545d72edefd61d86b4f13d2f9d34140e8168af94a7b7d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts": { + "version": "cbaf4a4aa8a8c02aa681c5870d5c69127974de29b7e01df570edec391a417959", + "signature": "cbaf4a4aa8a8c02aa681c5870d5c69127974de29b7e01df570edec391a417959", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts": { + "version": "b8d9df5c49858df86ffa6c497f1840528963c14ca0dea7684e813b008fe797b3", + "signature": "b8d9df5c49858df86ffa6c497f1840528963c14ca0dea7684e813b008fe797b3", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts": { + "version": "340a45cd77b41d8a6deda248167fa23d3dc67ec798d411bd282f7b3d555b1695", + "signature": "340a45cd77b41d8a6deda248167fa23d3dc67ec798d411bd282f7b3d555b1695", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts": { + "version": "b1f8c85b27619ccfae9064e433b3b32a11d93d54de5a1afdaeca23c8b30e38a5", + "signature": "b1f8c85b27619ccfae9064e433b3b32a11d93d54de5a1afdaeca23c8b30e38a5", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.d.ts": { + "version": "6f622e7f054f5ab86258362ac0a64a2d6a27f1e88732d6f5f052f422e08a70e7", + "signature": "6f622e7f054f5ab86258362ac0a64a2d6a27f1e88732d6f5f052f422e08a70e7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.d.ts": { + "version": "d62d2ef93ceeb41cf9dfab25989a1e5f9ca5160741aac7f1453c69a6c14c69be", + "signature": "d62d2ef93ceeb41cf9dfab25989a1e5f9ca5160741aac7f1453c69a6c14c69be", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.d.ts": { + "version": "1491e80d72873fc586605283f2d9056ee59b166333a769e64378240df130d1c9", + "signature": "1491e80d72873fc586605283f2d9056ee59b166333a769e64378240df130d1c9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.d.ts": { + "version": "c32c073d389cfaa3b3e562423e16c2e6d26b8edebbb7d73ccffff4aa66f2171d", + "signature": "c32c073d389cfaa3b3e562423e16c2e6d26b8edebbb7d73ccffff4aa66f2171d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/hooks/on-init.interface.d.ts": { + "version": "eca72bf229eecadb63e758613c62fab13815879053539a22477d83a48a21cd73", + "signature": "eca72bf229eecadb63e758613c62fab13815879053539a22477d83a48a21cd73", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/hooks/index.d.ts": { + "version": "633db46fd1765736409a4767bfc670861468dde60dbb9a501fba4c1b72f8644d", + "signature": "633db46fd1765736409a4767bfc670861468dde60dbb9a501fba4c1b72f8644d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/enums/request-method.enum.d.ts": { + "version": "0ed6417b905cddb85f98281cb3b5b137d393955521993d9ce069d5e2d6b26ee8", + "signature": "0ed6417b905cddb85f98281cb3b5b137d393955521993d9ce069d5e2d6b26ee8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/enums/http-status.enum.d.ts": { + "version": "838e56d3fa57441618e56eb979b0e8e8c6213f5d7c73c03b218fff3e6e90e167", + "signature": "838e56d3fa57441618e56eb979b0e8e8c6213f5d7c73c03b218fff3e6e90e167", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts": { + "version": "99d99a765426accf8133737843fb024a154dc6545fc0ffbba968a7c0b848959d", + "signature": "99d99a765426accf8133737843fb024a154dc6545fc0ffbba968a7c0b848959d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/enums/index.d.ts": { + "version": "9d85474bd2f429456d7eb39a412972e4de948e07a45e2f1531afbf56e0b7967d", + "signature": "9d85474bd2f429456d7eb39a412972e4de948e07a45e2f1531afbf56e0b7967d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts": { + "version": "0c1348abf453cb61d1a52250ec2061278666c70d22500c10a4203f68d66cd814", + "signature": "0c1348abf453cb61d1a52250ec2061278666c70d22500c10a4203f68d66cd814", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/external/https-options.interface.d.ts": { + "version": "a314a39426700ba2b5a76c01bab321bbe79cfef898dae996e930b017fc2b0af9", + "signature": "a314a39426700ba2b5a76c01bab321bbe79cfef898dae996e930b017fc2b0af9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/services/logger.service.d.ts": { + "version": "c5e72656514b8755f55458c6a7c8592ae1ff0717e0216ee160e43bf6ed5a36fd", + "signature": "c5e72656514b8755f55458c6a7c8592ae1ff0717e0216ee160e43bf6ed5a36fd", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts": { + "version": "fe9f16b156d44579d6957561fdfe4450ca0fb6bde1c56b81a9a0d53257568a54", + "signature": "fe9f16b156d44579d6957561fdfe4450ca0fb6bde1c56b81a9a0d53257568a54", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts": { + "version": "dbd539762e28e585c1c954624a7ed059c32b8e72750024c91d3197dd5324991c", + "signature": "dbd539762e28e585c1c954624a7ed059c32b8e72750024c91d3197dd5324991c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts": { + "version": "7d3b4fd361fea2de0bae1fde9b2924cc6a3fab397783cc773d64ee58e46cc5b7", + "signature": "7d3b4fd361fea2de0bae1fde9b2924cc6a3fab397783cc773d64ee58e46cc5b7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/http/message-event.interface.d.ts": { + "version": "5c4c5b49bbb01828402bb04af1d71673b18852c11b7e95bfd5cf4c3d80d352c8", + "signature": "5c4c5b49bbb01828402bb04af1d71673b18852c11b7e95bfd5cf4c3d80d352c8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/http/index.d.ts": { + "version": "8a4a75382ad915be014991cffdfef0e8d78572fe6dfa7f8f8eb748288bec27e2", + "signature": "8a4a75382ad915be014991cffdfef0e8d78572fe6dfa7f8f8eb748288bec27e2", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts": { + "version": "44ec212fbf43580505de3d6054376ced252c534ced872c53698047387213efb9", + "signature": "44ec212fbf43580505de3d6054376ced252c534ced872c53698047387213efb9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.d.ts": { + "version": "4880c2a2caa941aff7f91f51948ebfb10f15283ff0b163f8ea2a74499add61aa", + "signature": "4880c2a2caa941aff7f91f51948ebfb10f15283ff0b163f8ea2a74499add61aa", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts": { + "version": "8e1453c4f07194ab558fa0648cc30356c7536b134a8d7516edf86fd93706c222", + "signature": "8e1453c4f07194ab558fa0648cc30356c7536b134a8d7516edf86fd93706c222", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts": { + "version": "eee530aaa93e9ec362e3941ee8355e2d073c7b21d88c2af4713e3d701dab8fef", + "signature": "eee530aaa93e9ec362e3941ee8355e2d073c7b21d88c2af4713e3d701dab8fef", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts": { + "version": "ebf6ea6f412af15674333149f7f6561c0de9e36a4d4b350daccf6c5acbbf9fa3", + "signature": "ebf6ea6f412af15674333149f7f6561c0de9e36a4d4b350daccf6c5acbbf9fa3", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.d.ts": { + "version": "3d26959cb8d1c11bf3cbaf17f8d2cb0c0488ab787fac1b222e924e04bd235965", + "signature": "3d26959cb8d1c11bf3cbaf17f8d2cb0c0488ab787fac1b222e924e04bd235965", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/middleware/index.d.ts": { + "version": "7a0e4cd92545ad03910fd019ae9838718643bd4dde39881c745f236914901dfa", + "signature": "7a0e4cd92545ad03910fd019ae9838718643bd4dde39881c745f236914901dfa", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts": { + "version": "19c3760af3cbc9da99d5b7763b9e33aaf8d018bc2ed843287b7ff4343adf4634", + "signature": "19c3760af3cbc9da99d5b7763b9e33aaf8d018bc2ed843287b7ff4343adf4634", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts": { + "version": "c3befd91fe65a95f9a70f9fb62cdc98f0ffd28bebbc12ab09298de70f9cddc66", + "signature": "c3befd91fe65a95f9a70f9fb62cdc98f0ffd28bebbc12ab09298de70f9cddc66", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts": { + "version": "d1e22bc4ba2142678ca7e7a57b0df2952363cf6ee2546b820f38d46c2148cc72", + "signature": "d1e22bc4ba2142678ca7e7a57b0df2952363cf6ee2546b820f38d46c2148cc72", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts": { + "version": "9ddf8e9069327faa75d20135cab675779844f66590249769c3d35dd2a38c2ba9", + "signature": "9ddf8e9069327faa75d20135cab675779844f66590249769c3d35dd2a38c2ba9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts": { + "version": "d7c30f0abfe9e197e376b016086cf66b2ffb84015139963f37301ed0da9d3d0d", + "signature": "d7c30f0abfe9e197e376b016086cf66b2ffb84015139963f37301ed0da9d3d0d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts": { + "version": "ff75bba0148f07775bcb54bf4823421ed4ebdb751b3bf79cc003bd22e49d7d73", + "signature": "ff75bba0148f07775bcb54bf4823421ed4ebdb751b3bf79cc003bd22e49d7d73", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts": { + "version": "69196fa55fab9cd52c4eecba6051902bd5adff63ecf65e0546cb484b5a279fb1", + "signature": "69196fa55fab9cd52c4eecba6051902bd5adff63ecf65e0546cb484b5a279fb1", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/modules/index.d.ts": { + "version": "65cc10e9ccfba05590414409f6117b1cd945212ccf37dfb4bd1f0b8d3f8b0fe0", + "signature": "65cc10e9ccfba05590414409f6117b1cd945212ccf37dfb4bd1f0b8d3f8b0fe0", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts": { + "version": "6953edf2f16d26d14413d2d8d0891e75fdaa07ae7312042592e5d7893fed34ba", + "signature": "6953edf2f16d26d14413d2d8d0891e75fdaa07ae7312042592e5d7893fed34ba", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts": { + "version": "b75aa590b103f8491e1c943f9bc4989df55323d7e68fba393d3de11f4aae6bb8", + "signature": "b75aa590b103f8491e1c943f9bc4989df55323d7e68fba393d3de11f4aae6bb8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts": { + "version": "92b9c41739f831864235ab9fd0adaaeee37dad4a4ebb15d85be5299411c78a29", + "signature": "92b9c41739f831864235ab9fd0adaaeee37dad4a4ebb15d85be5299411c78a29", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts": { + "version": "95e3cb43454d0ddba30701325e9a4b559792a8e1382621246168ce2f4d794109", + "signature": "95e3cb43454d0ddba30701325e9a4b559792a8e1382621246168ce2f4d794109", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/index.d.ts": { + "version": "e6d6a0a155ca5c8a3199eff98b658f2cb34f1455bec312e0768fd4f93f725657", + "signature": "e6d6a0a155ca5c8a3199eff98b658f2cb34f1455bec312e0768fd4f93f725657", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts": { + "version": "e1d4f935e7b0e318ba0494b263852f82b3994a157bb117cb0f633f23341e021a", + "signature": "e1d4f935e7b0e318ba0494b263852f82b3994a157bb117cb0f633f23341e021a", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts": { + "version": "5a4b002e196dbeb469c1857c0e554db6a9cb96399e690e2bcefae00d1399cefa", + "signature": "5a4b002e196dbeb469c1857c0e554db6a9cb96399e690e2bcefae00d1399cefa", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/cache.module.d.ts": { + "version": "e04fed17398173e5baca3e7b003b677ff9263cae758bcb5049870cc8a850a1fe", + "signature": "e04fed17398173e5baca3e7b003b677ff9263cae758bcb5049870cc8a850a1fe", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts": { + "version": "6d8dedbec739bc79642c1e96e9bfc0b83b25b104a0486aebf016fc7b85b39f48", + "signature": "6d8dedbec739bc79642c1e96e9bfc0b83b25b104a0486aebf016fc7b85b39f48", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts": { + "version": "da339d9811a07a5923c48e10f2e2668d043fdf085bea59d88ed25e34708e6267", + "signature": "da339d9811a07a5923c48e10f2e2668d043fdf085bea59d88ed25e34708e6267", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts": { + "version": "635d921c7b16826c01f5f86b9a86e7bd94d5cb9cf220f2136d8dbba8627a674c", + "signature": "635d921c7b16826c01f5f86b9a86e7bd94d5cb9cf220f2136d8dbba8627a674c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/dependencies.decorator.d.ts": { + "version": "0fdb1ed509382bd388896d3770655b0cda8c80c36f8c54b3899992f7a3a8665c", + "signature": "0fdb1ed509382bd388896d3770655b0cda8c80c36f8c54b3899992f7a3a8665c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts": { + "version": "d97b96b6ecd4ee03f9f1170722c825ef778430a6a0d7aab03b8929012bf773cd", + "signature": "d97b96b6ecd4ee03f9f1170722c825ef778430a6a0d7aab03b8929012bf773cd", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/inject.decorator.d.ts": { + "version": "f55fc3e536ab193aaabb9b6ded5f93181f81294ee65fe3199c9f4415f0f1e53c", + "signature": "f55fc3e536ab193aaabb9b6ded5f93181f81294ee65fe3199c9f4415f0f1e53c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts": { + "version": "8043ba7d556843bc12e3d9d1e36041ea875b56b03e4571ac055426547974f7a3", + "signature": "8043ba7d556843bc12e3d9d1e36041ea875b56b03e4571ac055426547974f7a3", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/optional.decorator.d.ts": { + "version": "542ecc66e4fcc33f46695ae22b1d14c075054a78c019915d556636be642465af", + "signature": "542ecc66e4fcc33f46695ae22b1d14c075054a78c019915d556636be642465af", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/set-metadata.decorator.d.ts": { + "version": "476b5c25e85b94e15d761bb9503f55fb11e81167df451f187f5080fca825273b", + "signature": "476b5c25e85b94e15d761bb9503f55fb11e81167df451f187f5080fca825273b", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts": { + "version": "72636f59b635c378dc9ea5246b9b3517b1214e340e468e54cb80126353053b2e", + "signature": "72636f59b635c378dc9ea5246b9b3517b1214e340e468e54cb80126353053b2e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts": { + "version": "ebb79f267a3bf2de5f8edc1995c5d31777b539935fab8b7d863e8efb06c8e9ea", + "signature": "ebb79f267a3bf2de5f8edc1995c5d31777b539935fab8b7d863e8efb06c8e9ea", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts": { + "version": "ada033e6a4c7f4e147e6d76bb881069dc66750619f8cc2472d65beeec1100145", + "signature": "ada033e6a4c7f4e147e6d76bb881069dc66750619f8cc2472d65beeec1100145", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/apply-decorators.d.ts": { + "version": "52ff5e1ea35c54428b46c75fd14f87b7a7158a8f4a1ecfc4a9b996a03185c738", + "signature": "52ff5e1ea35c54428b46c75fd14f87b7a7158a8f4a1ecfc4a9b996a03185c738", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/core/index.d.ts": { + "version": "2b658513ca9181d8dbfc756dfbe24cb5f6a70b7c49f87854a8452e9a8b362b74", + "signature": "2b658513ca9181d8dbfc756dfbe24cb5f6a70b7c49f87854a8452e9a8b362b74", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/modules/global.decorator.d.ts": { + "version": "c704ff0e0cb86d1b791767a88af21dadfee259180720a14c12baee668d0eb8fb", + "signature": "c704ff0e0cb86d1b791767a88af21dadfee259180720a14c12baee668d0eb8fb", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts": { + "version": "035297b9574f4c15f2eb0ec28b631ffd242236c3feedf58602209b245045d94e", + "signature": "035297b9574f4c15f2eb0ec28b631ffd242236c3feedf58602209b245045d94e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/modules/index.d.ts": { + "version": "da665f00b6877ae4adb39cd548257f487a76e3d99e006a702a4f38b4b39431cb", + "signature": "da665f00b6877ae4adb39cd548257f487a76e3d99e006a702a4f38b4b39431cb", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts": { + "version": "0d276d377a0bf0f35e8d7a5b871922ebfa6aff1757d1bbe27a7982b15ce78516", + "signature": "0d276d377a0bf0f35e8d7a5b871922ebfa6aff1757d1bbe27a7982b15ce78516", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts": { + "version": "eb1c9abbde9020ba44cfcc500701432364293b8f3dd0898a2531d7c84592eab7", + "signature": "eb1c9abbde9020ba44cfcc500701432364293b8f3dd0898a2531d7c84592eab7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/http-code.decorator.d.ts": { + "version": "d7a4309673b06223537bc9544b1a5fe9425628e1c8ab5605f3c5ebc27ecb8074", + "signature": "d7a4309673b06223537bc9544b1a5fe9425628e1c8ab5605f3c5ebc27ecb8074", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts": { + "version": "ced87f58b05e2b07e314754f0a7ab17e2df9c37ee2d429948024b2c6418d6c9f", + "signature": "ced87f58b05e2b07e314754f0a7ab17e2df9c37ee2d429948024b2c6418d6c9f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/render.decorator.d.ts": { + "version": "daaed996a21f3bf223f5897e9555ab5388e47cf4dc2a46d646de98b254a80e24", + "signature": "daaed996a21f3bf223f5897e9555ab5388e47cf4dc2a46d646de98b254a80e24", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/header.decorator.d.ts": { + "version": "3ac0b94ba8f884f63d38450ce9e29ecd59ff00805ffdd609193d7532b8605459", + "signature": "3ac0b94ba8f884f63d38450ce9e29ecd59ff00805ffdd609193d7532b8605459", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/redirect.decorator.d.ts": { + "version": "a3684ea9719122f9477902acd08cd363a6f3cff6d493df89d4dc12fa58204e27", + "signature": "a3684ea9719122f9477902acd08cd363a6f3cff6d493df89d4dc12fa58204e27", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/sse.decorator.d.ts": { + "version": "2828dabf17a6507d39ebcc58fef847e111dcf2d51b8e4ff0d32732c72be032b3", + "signature": "2828dabf17a6507d39ebcc58fef847e111dcf2d51b8e4ff0d32732c72be032b3", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/http/index.d.ts": { + "version": "c0c46113b4cd5ec9e7cf56e6dbfb3930ef6cbba914c0883eeced396988ae8320", + "signature": "c0c46113b4cd5ec9e7cf56e6dbfb3930ef6cbba914c0883eeced396988ae8320", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/decorators/index.d.ts": { + "version": "118ea3f4e7b9c12e92551be0766706f57a411b4f18a1b4762cfde3cd6d4f0a96", + "signature": "118ea3f4e7b9c12e92551be0766706f57a411b4f18a1b4762cfde3cd6d4f0a96", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts": { + "version": "473bf3574a48185f71b70fe839fb1a340a176d80ea7f50dee489c2dc8e81613f", + "signature": "473bf3574a48185f71b70fe839fb1a340a176d80ea7f50dee489c2dc8e81613f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts": { + "version": "2b14b50de7e32a9882511d1b06be4eb036303bc72ce4a10f93a224382731500d", + "signature": "2b14b50de7e32a9882511d1b06be4eb036303bc72ce4a10f93a224382731500d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/decorators/index.d.ts": { + "version": "eeb24fa259f000f6b51a1fe89123f55de081eb2a0ef8d8f847afd67af49cfb68", + "signature": "eeb24fa259f000f6b51a1fe89123f55de081eb2a0ef8d8f847afd67af49cfb68", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts": { + "version": "13cb7f1e85111b2bdfcbc41bd2be8cf34ad26e13b296ca53a78de68eeb44c17b", + "signature": "13cb7f1e85111b2bdfcbc41bd2be8cf34ad26e13b296ca53a78de68eeb44c17b", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/interceptors/index.d.ts": { + "version": "e21bb2cfbcdd8ce7eebb72422f3660806724f2b16cd6ce126d527511abb3a379", + "signature": "e21bb2cfbcdd8ce7eebb72422f3660806724f2b16cd6ce126d527511abb3a379", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/interfaces/index.d.ts": { + "version": "c04146836a55ea071b435298335e47f569db0e4d3ae420e35c83e448f944192f", + "signature": "c04146836a55ea071b435298335e47f569db0e4d3ae420e35c83e448f944192f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/cache/index.d.ts": { + "version": "31f71fe23daabea143fc8bd21dae0d5908227180fcda38ad3674df70351f9761", + "signature": "31f71fe23daabea143fc8bd21dae0d5908227180fcda38ad3674df70351f9761", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts": { + "version": "2930b827aef9a11d529b13938f300e5a462ea61f3a9c939df417794df736ffd7", + "signature": "2930b827aef9a11d529b13938f300e5a462ea61f3a9c939df417794df736ffd7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts": { + "version": "5e708f74430b99f0d7234aad17a03ea3f20953b70a9d483e944cf6fd4c5bcad8", + "signature": "5e708f74430b99f0d7234aad17a03ea3f20953b70a9d483e944cf6fd4c5bcad8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts": { + "version": "c73024f77467e950214c5ccded56b9f52a30413795f0673d55ed34d4a3abbb80", + "signature": "c73024f77467e950214c5ccded56b9f52a30413795f0673d55ed34d4a3abbb80", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts": { + "version": "44119efe5bff6e427cebd594b5ed141b70e4725c12d0f0bdab9f422433b82534", + "signature": "44119efe5bff6e427cebd594b5ed141b70e4725c12d0f0bdab9f422433b82534", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts": { + "version": "6c32e45004393346be19d018d5f6935cce22bfeadbba88f47dd5455120566f56", + "signature": "6c32e45004393346be19d018d5f6935cce22bfeadbba88f47dd5455120566f56", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts": { + "version": "38241b58e1f9b3a9dcc7d868bbfa4a6aeeab8ed6631259533f9133111c382cba", + "signature": "38241b58e1f9b3a9dcc7d868bbfa4a6aeeab8ed6631259533f9133111c382cba", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts": { + "version": "a2d7ab8f8ce3402f04c53565dd0bd3bcf54915fa823e7e2bb354c8be30e77531", + "signature": "a2d7ab8f8ce3402f04c53565dd0bd3bcf54915fa823e7e2bb354c8be30e77531", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts": { + "version": "5135b998e8a38739e35e277b9cf7c099700356d2e67f49aeacf469e26fc67914", + "signature": "5135b998e8a38739e35e277b9cf7c099700356d2e67f49aeacf469e26fc67914", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts": { + "version": "c9a309f77585b4bc473a6119c0b278dff3dd601f150e0eb47df7fbee1fc57ca3", + "signature": "c9a309f77585b4bc473a6119c0b278dff3dd601f150e0eb47df7fbee1fc57ca3", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/gone.exception.d.ts": { + "version": "17520948e5661a97753b251b6c8f120c5dec3146a8e6fd311fb7a0fc29d05c62", + "signature": "17520948e5661a97753b251b6c8f120c5dec3146a8e6fd311fb7a0fc29d05c62", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts": { + "version": "3c50345b73a7f3e26b9f934050d9345d6138259b6a33ad4c76c767e831e6fa2c", + "signature": "3c50345b73a7f3e26b9f934050d9345d6138259b6a33ad4c76c767e831e6fa2c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts": { + "version": "d2230911663e190e544bc83a64467abe2c723969a687f19d55bdeff068f07be9", + "signature": "d2230911663e190e544bc83a64467abe2c723969a687f19d55bdeff068f07be9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts": { + "version": "8a316369d7d99cdd3c94c05dd13945edf81cbc254b307a808c1bb6cff4bb32ed", + "signature": "8a316369d7d99cdd3c94c05dd13945edf81cbc254b307a808c1bb6cff4bb32ed", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts": { + "version": "19f53dd3a4fe3a0d14b4921d881fcf7b4b6d5e93c1b59b007cf17ee81b72b9ce", + "signature": "19f53dd3a4fe3a0d14b4921d881fcf7b4b6d5e93c1b59b007cf17ee81b72b9ce", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts": { + "version": "24d03528b32b500a938ed85963becf5032d0fe554c70c29a55d533224ba9150e", + "signature": "24d03528b32b500a938ed85963becf5032d0fe554c70c29a55d533224ba9150e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts": { + "version": "12417842c8569d29558df33faf50b3d43b1d1f4d5ff0ebec0647620442d27081", + "signature": "12417842c8569d29558df33faf50b3d43b1d1f4d5ff0ebec0647620442d27081", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts": { + "version": "8c57da766ebfe9477023e0e6dd8b3b17bafad363cd4abf220e27df01fba5eba8", + "signature": "8c57da766ebfe9477023e0e6dd8b3b17bafad363cd4abf220e27df01fba5eba8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts": { + "version": "5341c8e84b5e75615ec1b9443b2b3485048fb3536a64c468c7d86be8f8d535d9", + "signature": "5341c8e84b5e75615ec1b9443b2b3485048fb3536a64c468c7d86be8f8d535d9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts": { + "version": "c7c0814aac0ffff6415448abef7ca8ce3ed78bc290f6d4d400bde64103350a5c", + "signature": "c7c0814aac0ffff6415448abef7ca8ce3ed78bc290f6d4d400bde64103350a5c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts": { + "version": "5046e6a3ee887d2037d6417a6a2a7deb674064f19e5b6c917711198597ce905e", + "signature": "5046e6a3ee887d2037d6417a6a2a7deb674064f19e5b6c917711198597ce905e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts": { + "version": "d43e759e21c40c06f5228ddaa6a35ef1ea711c4fa1d2f3380789d27312b0bbfe", + "signature": "d43e759e21c40c06f5228ddaa6a35ef1ea711c4fa1d2f3380789d27312b0bbfe", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts": { + "version": "1874e5bc5f6f0b4007608ea8cfa36c8883d3f9be8d51c0881ef1c913ea0ff169", + "signature": "1874e5bc5f6f0b4007608ea8cfa36c8883d3f9be8d51c0881ef1c913ea0ff169", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/exceptions/index.d.ts": { + "version": "b9c89b4a2435c171e0a9a56668f510a376cb7991eaecef08b619e6d484841735", + "signature": "b9c89b4a2435c171e0a9a56668f510a376cb7991eaecef08b619e6d484841735", + "affectsGlobalScope": false + }, + "../node_modules/axios/index.d.ts": { + "version": "0d892f035dbee4534f0ba096407136877595ca592f67ec9bb8a5c912b9c967e8", + "signature": "0d892f035dbee4534f0ba096407136877595ca592f67ec9bb8a5c912b9c967e8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/http/interfaces/http-module.interface.d.ts": { + "version": "fb986dd9763020d8b0bb92257a2be89f18d286947762d93788b8518c4a3db2ef", + "signature": "fb986dd9763020d8b0bb92257a2be89f18d286947762d93788b8518c4a3db2ef", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/http/interfaces/index.d.ts": { + "version": "7d80d85fbd6b4e0fe11dde5fcc9aa875547f1ec1a499ca536a39b55d4e1ba803", + "signature": "7d80d85fbd6b4e0fe11dde5fcc9aa875547f1ec1a499ca536a39b55d4e1ba803", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/http/http.module.d.ts": { + "version": "cec8d5d5253889b3a0c7426a38b937d3ea0b1df9e7231ae5e836fb6f74f2ca3e", + "signature": "cec8d5d5253889b3a0c7426a38b937d3ea0b1df9e7231ae5e836fb6f74f2ca3e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/http/http.service.d.ts": { + "version": "5724b96bab59291224bc0551283307f79590cfda1a1b6c02839dbada59c63e79", + "signature": "5724b96bab59291224bc0551283307f79590cfda1a1b6c02839dbada59c63e79", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/http/index.d.ts": { + "version": "3a93e73ecbb7a89241c58fcf30ecfbf788c3e98d01f5eab4573ce0f8635b6506", + "signature": "3a93e73ecbb7a89241c58fcf30ecfbf788c3e98d01f5eab4573ce0f8635b6506", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts": { + "version": "a1a3339a334f1389927088846b52bd99d5e0b484c366a251bc92585aa856a43e", + "signature": "a1a3339a334f1389927088846b52bd99d5e0b484c366a251bc92585aa856a43e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts": { + "version": "97a79b756b361951755990c5f8de7d344e8424bcdb7734b420d7293080ba63b7", + "signature": "97a79b756b361951755990c5f8de7d344e8424bcdb7734b420d7293080ba63b7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/external/validator-options.interface.d.ts": { + "version": "bc3632c2e7da2f0c9a20890c06ef9b125b3b907e9ab92433bbde78a5779247ca", + "signature": "bc3632c2e7da2f0c9a20890c06ef9b125b3b907e9ab92433bbde78a5779247ca", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts": { + "version": "4ee1e0fea72cd6a832c65af93b62fbf39b009e3711384bb371b48c9abba66781", + "signature": "4ee1e0fea72cd6a832c65af93b62fbf39b009e3711384bb371b48c9abba66781", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/pipes/validation.pipe.d.ts": { + "version": "8f5e19eddf60c08458443b9170f15007121445c4987ebbfd2fdb8ed007238498", + "signature": "8f5e19eddf60c08458443b9170f15007121445c4987ebbfd2fdb8ed007238498", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts": { + "version": "fd957ca0ac4e2ec215a9b15de793be35ebcde7c63401537a1ad2c78c5a644aeb", + "signature": "fd957ca0ac4e2ec215a9b15de793be35ebcde7c63401537a1ad2c78c5a644aeb", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts": { + "version": "fa1f3704fc31ab3251c183c5653c6cbd253058da76531b6f14accb2c40749380", + "signature": "fa1f3704fc31ab3251c183c5653c6cbd253058da76531b6f14accb2c40749380", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts": { + "version": "b50e1d78706fcc470f50f5f99db96875984fab08725efe78e1588e8240239d58", + "signature": "b50e1d78706fcc470f50f5f99db96875984fab08725efe78e1588e8240239d58", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts": { + "version": "56bfcc1ad68a19b868022ceae3d285b7f9ba697b5f51c0189b6bd7e0c25898a6", + "signature": "56bfcc1ad68a19b868022ceae3d285b7f9ba697b5f51c0189b6bd7e0c25898a6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/pipes/index.d.ts": { + "version": "6b8b48f3fe037563bf5a2d45c699060fc15be6afb2fc866aad8a9165deeb1954", + "signature": "6b8b48f3fe037563bf5a2d45c699060fc15be6afb2fc866aad8a9165deeb1954", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts": { + "version": "8988b098a2a3a905dd81fb70a9317dbf201a617755b080f78fe57fb4f225b414", + "signature": "8988b098a2a3a905dd81fb70a9317dbf201a617755b080f78fe57fb4f225b414", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts": { + "version": "9c89ab413cd620c91d82ef9a9631eca3fe3b65090df1cc729a43e1fdc9f8ed37", + "signature": "9c89ab413cd620c91d82ef9a9631eca3fe3b65090df1cc729a43e1fdc9f8ed37", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/serializer/decorators/index.d.ts": { + "version": "5a44788293f9165116c9c183be66cefef0dc5d718782a04847de53bf664f3cc1", + "signature": "5a44788293f9165116c9c183be66cefef0dc5d718782a04847de53bf664f3cc1", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/serializer/index.d.ts": { + "version": "0b7109542117ad1529021dc091535820f0c2c42cc2399a751ba8af5c119af6a9", + "signature": "0b7109542117ad1529021dc091535820f0c2c42cc2399a751ba8af5c119af6a9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/services/index.d.ts": { + "version": "2261a732f778845b3b07626c291558e72f99f7e182e26ddf5c8acd055ee1a9c0", + "signature": "2261a732f778845b3b07626c291558e72f99f7e182e26ddf5c8acd055ee1a9c0", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/utils/forward-ref.util.d.ts": { + "version": "5df9a68835c1e020625127d8c951c90808d319c811fc3a780d24f64053192ea4", + "signature": "5df9a68835c1e020625127d8c951c90808d319c811fc3a780d24f64053192ea4", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/utils/index.d.ts": { + "version": "71807b208e5f15feffb3ff530bec5b46b1217af0d8cc96dde00d549353bcb864", + "signature": "71807b208e5f15feffb3ff530bec5b46b1217af0d8cc96dde00d549353bcb864", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/index.d.ts": { + "version": "95b5a3078fdc51508d5d9cde59a1dd9525b53fd42dc12265a55261fd415d3274", + "signature": "95b5a3078fdc51508d5d9cde59a1dd9525b53fd42dc12265a55261fd415d3274", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts": { + "version": "748dc5e30576ac07af1121893bb1beaafb0d7d0000142b69fae2b2995fc7f7f4", + "signature": "748dc5e30576ac07af1121893bb1beaafb0d7d0000142b69fae2b2995fc7f7f4", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/adapters/index.d.ts": { + "version": "8b0b6a4c032a56d5651f7dd02ba3f05fbfe4131c4095093633cda3cae0991972", + "signature": "8b0b6a4c032a56d5651f7dd02ba3f05fbfe4131c4095093633cda3cae0991972", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/module-token-factory.d.ts": { + "version": "27484cb3aa328bc5d0957fcb34df68a5db1be280af510d9ed3a282b1a0a93b38", + "signature": "27484cb3aa328bc5d0957fcb34df68a5db1be280af510d9ed3a282b1a0a93b38", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/modules-container.d.ts": { + "version": "c1c60dd235d2ce756231cec4bfec763980de6913efcfc3fb459938fee9ea26a5", + "signature": "c1c60dd235d2ce756231cec4bfec763980de6913efcfc3fb459938fee9ea26a5", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/container.d.ts": { + "version": "67bdd2a7bdda53477e3342d4d28e0426afcc9232018c81b801b4423fd6ba4cf5", + "signature": "67bdd2a7bdda53477e3342d4d28e0426afcc9232018c81b801b4423fd6ba4cf5", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/module-ref.d.ts": { + "version": "9473e83a3ccd24983ca2bc517ad41d81542f5a8215288be71bcd73655ee5ace0", + "signature": "9473e83a3ccd24983ca2bc517ad41d81542f5a8215288be71bcd73655ee5ace0", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/module.d.ts": { + "version": "56c3861bbf4c47c5490585fd601d412b371836edc4df1bf1fa8ef511ee49f981", + "signature": "56c3861bbf4c47c5490585fd601d412b371836edc4df1bf1fa8ef511ee49f981", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts": { + "version": "841487542d9a8f579ba6f644f754c5b90ed872a345d2a3fa4b08077db03e7027", + "signature": "841487542d9a8f579ba6f644f754c5b90ed872a345d2a3fa4b08077db03e7027", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/application-config.d.ts": { + "version": "620eaa2096c69dff36875f086e8a63c326fccda643360b7d7cd580b403753488", + "signature": "620eaa2096c69dff36875f086e8a63c326fccda643360b7d7cd580b403753488", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/constants.d.ts": { + "version": "f23601713615719b1a1394deae884fb9f507de819a086d5a019c63793da9efc6", + "signature": "f23601713615719b1a1394deae884fb9f507de819a086d5a019c63793da9efc6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/discovery/discovery-module.d.ts": { + "version": "50fd11b764194f06977c162c37e5a70bcf0d3579bf82dd4de4eee3ac68d0f82f", + "signature": "50fd11b764194f06977c162c37e5a70bcf0d3579bf82dd4de4eee3ac68d0f82f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/discovery/discovery-service.d.ts": { + "version": "ad5ad568f2f537a43dcc1588b2379f9dc79539ae36b8821b13a5d03625211eb2", + "signature": "ad5ad568f2f537a43dcc1588b2379f9dc79539ae36b8821b13a5d03625211eb2", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/discovery/index.d.ts": { + "version": "99579aa074ed298e7a3d6a47e68f0cd099e92411212d5081ce88344a5b1b528d", + "signature": "99579aa074ed298e7a3d6a47e68f0cd099e92411212d5081ce88344a5b1b528d", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/helpers/context-id-factory.d.ts": { + "version": "a4d05f346ba48f5685f9142fdd90b1e12e463535c38bdea74fce64813f2a8661", + "signature": "a4d05f346ba48f5685f9142fdd90b1e12e463535c38bdea74fce64813f2a8661", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts": { + "version": "d2d58166965f631fa203f405f3713b0f86f1f8b80755e9daea43057a25311e16", + "signature": "d2d58166965f631fa203f405f3713b0f86f1f8b80755e9daea43057a25311e16", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/helpers/index.d.ts": { + "version": "0256d60785ede7860b5262f504f139aa68f74db44ba9f03807b752864580772c", + "signature": "0256d60785ede7860b5262f504f139aa68f74db44ba9f03807b752864580772c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts": { + "version": "e4fc4090c3687640d033fd75585ccb54dcdf3bf406338228df50b0dcee0314d0", + "signature": "e4fc4090c3687640d033fd75585ccb54dcdf3bf406338228df50b0dcee0314d0", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/exceptions/index.d.ts": { + "version": "942ab34f62ac3f3d20014615b6442b6dc51815e30a878ebc390dd70e0dec63bf", + "signature": "942ab34f62ac3f3d20014615b6442b6dc51815e30a878ebc390dd70e0dec63bf", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/inquirer/inquirer-constants.d.ts": { + "version": "396c1e5a39706999ec8cc582916e05fcb4f901631d2c192c1292e95089a494d9", + "signature": "396c1e5a39706999ec8cc582916e05fcb4f901631d2c192c1292e95089a494d9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/inquirer/index.d.ts": { + "version": "89df75d28f34fc698fe261f9489125b4e5828fbd62d863bbe93373d3ed995056", + "signature": "89df75d28f34fc698fe261f9489125b4e5828fbd62d863bbe93373d3ed995056", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/index.d.ts": { + "version": "e99e3ad9035927f61b1d6b54c51fca01e46bdcaf861fd9484086d871e76d0aef", + "signature": "e99e3ad9035927f61b1d6b54c51fca01e46bdcaf861fd9484086d871e76d0aef", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/metadata-scanner.d.ts": { + "version": "7cb9b6d5c1e3508fbc81e7bbab314eac54715f9326ac72fd0eb65f17a4393d50", + "signature": "7cb9b6d5c1e3508fbc81e7bbab314eac54715f9326ac72fd0eb65f17a4393d50", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/middleware/routes-mapper.d.ts": { + "version": "5175a0f207a73df7426acc2bdc854b0c4bfab7434742f873816f0fc71f4fa2f5", + "signature": "5175a0f207a73df7426acc2bdc854b0c4bfab7434742f873816f0fc71f4fa2f5", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/middleware/builder.d.ts": { + "version": "9daabcf8cac2bd41d4cb83511c0358fc24650fd08f9ae73e888582285a116a3f", + "signature": "9daabcf8cac2bd41d4cb83511c0358fc24650fd08f9ae73e888582285a116a3f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/middleware/index.d.ts": { + "version": "82d3e00d56a71fc169f3cf9ec5f5ffcc92f6c0e67d4dfc130dafe9f1886d5515", + "signature": "82d3e00d56a71fc169f3cf9ec5f5ffcc92f6c0e67d4dfc130dafe9f1886d5515", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/injector/injector.d.ts": { + "version": "a32c70b9753eec66043f470348cc6c4aa5d5d121f23999da704fd768f57f437c", + "signature": "a32c70b9753eec66043f470348cc6c4aa5d5d121f23999da704fd768f57f437c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/nest-application-context.d.ts": { + "version": "bcf53ab536b5623e8697585d313e1095d5da535dc8157a01c38f9f65c9ebdda0", + "signature": "bcf53ab536b5623e8697585d313e1095d5da535dc8157a01c38f9f65c9ebdda0", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/nest-application.d.ts": { + "version": "398ee5590d2e022f7c00f0c1f049db902cd8c7a2bf9bfacac5bef35cc8977aa7", + "signature": "398ee5590d2e022f7c00f0c1f049db902cd8c7a2bf9bfacac5bef35cc8977aa7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts": { + "version": "e3d221660c0b79a9a3ba1111b3dfbb1136c0b52d7609b0054d3ce09ce711a3e6", + "signature": "e3d221660c0b79a9a3ba1111b3dfbb1136c0b52d7609b0054d3ce09ce711a3e6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/nest-factory.d.ts": { + "version": "8dcb9206a5ff25c0d64ddc39611814296851d3be1a24e20c13efc205a35e7ec5", + "signature": "8dcb9206a5ff25c0d64ddc39611814296851d3be1a24e20c13efc205a35e7ec5", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/router/request/request-constants.d.ts": { + "version": "e47adc2176f43c617c0ab47f2d9b2bb1706d9e0669bf349a30c3fe09ddd63261", + "signature": "e47adc2176f43c617c0ab47f2d9b2bb1706d9e0669bf349a30c3fe09ddd63261", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/router/request/index.d.ts": { + "version": "7fec79dfd7319fec7456b1b53134edb54c411ba493a0aef350eee75a4f223eeb", + "signature": "7fec79dfd7319fec7456b1b53134edb54c411ba493a0aef350eee75a4f223eeb", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/router/index.d.ts": { + "version": "c6d07008f2a83d1294adf9fb18b9fe6c0e01964a66263c5a827d7ff0d0cd7abd", + "signature": "c6d07008f2a83d1294adf9fb18b9fe6c0e01964a66263c5a827d7ff0d0cd7abd", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/services/reflector.service.d.ts": { + "version": "abdc0a8843b28c3cafbefb90079690b17b7b4e2a9c9bbf2cd8762e11a3958034", + "signature": "abdc0a8843b28c3cafbefb90079690b17b7b4e2a9c9bbf2cd8762e11a3958034", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/services/index.d.ts": { + "version": "2e252235037a2cd8feebfbf74aa460f783e5d423895d13f29a934d7655a1f8be", + "signature": "2e252235037a2cd8feebfbf74aa460f783e5d423895d13f29a934d7655a1f8be", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/core/index.d.ts": { + "version": "7b5ed961a0e03965299591d73de8b8c41e8a68105ff4fc07a240b0dfb94a5a3d", + "signature": "7b5ed961a0e03965299591d73de8b8c41e8a68105ff4fc07a240b0dfb94a5a3d", + "affectsGlobalScope": false + }, + "../src/app/app.service.ts": { + "version": "eaf8514ce110fa428a93a27408df4d06d133dbd9ed0a775c315ddfdd507853a9", + "signature": "d8f4cb0109c1b399d657807fd6af504d74a9300325e0fc915abdbf658b464a97", + "affectsGlobalScope": false + }, + "../src/app/app.controller.ts": { + "version": "260f889b9e2b69f77be1155348eb345166aec664b3efff6720053c6844a41f28", + "signature": "3293b0d1d6a7f902316e164fcf36ae099f1bbb0224484586eaab30d9dea78d32", + "affectsGlobalScope": false + }, + "../node_modules/@devon4node/common/serializer/interceptors/class-serializer.interceptor.d.ts": { + "version": "7af6714f660fbe29af4c8f4e3da22fba417e676d79f7f592d830f3a157cdf116", + "signature": "7af6714f660fbe29af4c8f4e3da22fba417e676d79f7f592d830f3a157cdf116", + "affectsGlobalScope": false + }, + "../node_modules/class-transformer/classtransformoptions.d.ts": { + "version": "d89af0c250e1424959162beae79f2c2745c729d6ab8028503d322395d96d3a2b", + "signature": "d89af0c250e1424959162beae79f2c2745c729d6ab8028503d322395d96d3a2b", + "affectsGlobalScope": false + }, + "../node_modules/class-transformer/classtransformer.d.ts": { + "version": "96589ead67dc132731ddb531c3c7de2e66156df7154b1136d1abd92bdaa27e79", + "signature": "96589ead67dc132731ddb531c3c7de2e66156df7154b1136d1abd92bdaa27e79", + "affectsGlobalScope": false + }, + "../node_modules/@devon4node/common/serializer/decorators/crud-type.decorator.d.ts": { + "version": "ae8b6b5807de6f011ac0338b378a4a6b1c1a24a89f9efeae81dbd1a46352ad90", + "signature": "ae8b6b5807de6f011ac0338b378a4a6b1c1a24a89f9efeae81dbd1a46352ad90", + "affectsGlobalScope": false + }, + "../node_modules/@devon4node/common/serializer/index.d.ts": { + "version": "6280a7a1fa8d35f3f8f56edd7683cf3f6c7934a2e6c0670b8c7c72c65ef75482", + "signature": "6280a7a1fa8d35f3f8f56edd7683cf3f6c7934a2e6c0670b8c7c72c65ef75482", + "affectsGlobalScope": false + }, + "../node_modules/@devon4node/config/dist/base-config.d.ts": { + "version": "a193fa29c23a3ef984c7035ce78d64234bbd6d94ffdd2dc05f581bfaa36ac133", + "signature": "a193fa29c23a3ef984c7035ce78d64234bbd6d94ffdd2dc05f581bfaa36ac133", + "affectsGlobalScope": false + }, + "../node_modules/@devon4node/config/dist/config.types.d.ts": { + "version": "ba7ec32d37ec9824055f7090c84aa3c820555f1366f7acc6328b6ded0d564735", + "signature": "ba7ec32d37ec9824055f7090c84aa3c820555f1366f7acc6328b6ded0d564735", + "affectsGlobalScope": false + }, + "../node_modules/@devon4node/config/dist/config.module.d.ts": { + "version": "520508b251fac9a5ef00ffa8090a2f50a48588490827e364e28c96cdf30d6ec8", + "signature": "520508b251fac9a5ef00ffa8090a2f50a48588490827e364e28c96cdf30d6ec8", + "affectsGlobalScope": false + }, + "../node_modules/@devon4node/config/dist/config.service.d.ts": { + "version": "9e365d6263af26a70051040e40dd5558ef49738b99ff227704baaaab89ae1a34", + "signature": "9e365d6263af26a70051040e40dd5558ef49738b99ff227704baaaab89ae1a34", + "affectsGlobalScope": false + }, + "../node_modules/@devon4node/config/dist/index.d.ts": { + "version": "4dd53a7ed5f8725ca21732afe7b9ecce3c190bd41afe7e4f2b3dd27df06e6f80", + "signature": "4dd53a7ed5f8725ca21732afe7b9ecce3c190bd41afe7e4f2b3dd27df06e6f80", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/globals.d.ts": { + "version": "215d8d9a2c480fd460127edc048d68d9931d3b27f95132253a6e71975f060bb1", + "signature": "215d8d9a2c480fd460127edc048d68d9931d3b27f95132253a6e71975f060bb1", + "affectsGlobalScope": true + }, + "../node_modules/@types/node/async_hooks.d.ts": { + "version": "c438b413e94ff76dfa20ae005f33a1c84f2480d1d66e0fd687501020d0de9b50", + "signature": "c438b413e94ff76dfa20ae005f33a1c84f2480d1d66e0fd687501020d0de9b50", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/buffer.d.ts": { + "version": "bc6a78961535181265845bf9b9e8a147ffd0ca275097ceb670a9b92afa825152", + "signature": "bc6a78961535181265845bf9b9e8a147ffd0ca275097ceb670a9b92afa825152", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/child_process.d.ts": { + "version": "987249e7b75023387c5fd9dc2f959ee777cb8989b7900f5a9eb4a67d290f2cba", + "signature": "987249e7b75023387c5fd9dc2f959ee777cb8989b7900f5a9eb4a67d290f2cba", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/cluster.d.ts": { + "version": "123ec69e4b3a686eb49afd94ebe3292a5c84a867ecbcb6bb84bdd720a12af803", + "signature": "123ec69e4b3a686eb49afd94ebe3292a5c84a867ecbcb6bb84bdd720a12af803", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/console.d.ts": { + "version": "eb5197aade83cb0e360ac407289c53a8009e8fdae7939892a0240d30444496b6", + "signature": "eb5197aade83cb0e360ac407289c53a8009e8fdae7939892a0240d30444496b6", + "affectsGlobalScope": true + }, + "../node_modules/@types/node/constants.d.ts": { + "version": "90c85ddbb8de82cd19198bda062065fc51b7407c0f206f2e399e65a52e979720", + "signature": "90c85ddbb8de82cd19198bda062065fc51b7407c0f206f2e399e65a52e979720", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/crypto.d.ts": { + "version": "75d76be86ffc40ae985ebace0cbd2c79b1e10c224c925d91f4df5a2705cc3f76", + "signature": "75d76be86ffc40ae985ebace0cbd2c79b1e10c224c925d91f4df5a2705cc3f76", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/dgram.d.ts": { + "version": "7e050b767ed10c7ffbc01f314defbf420bf0b5d54ce666e1c87507c035dfc191", + "signature": "7e050b767ed10c7ffbc01f314defbf420bf0b5d54ce666e1c87507c035dfc191", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/dns.d.ts": { + "version": "7db7569fbb3e2b01ba8751c761cdd3f0debd104170d5665b7dc20a11630df3a9", + "signature": "7db7569fbb3e2b01ba8751c761cdd3f0debd104170d5665b7dc20a11630df3a9", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/domain.d.ts": { + "version": "cde4d7f6274468180fa39847b183aec22626e8212ff885d535c53f4cd7c225fd", + "signature": "cde4d7f6274468180fa39847b183aec22626e8212ff885d535c53f4cd7c225fd", + "affectsGlobalScope": true + }, + "../node_modules/@types/node/events.d.ts": { + "version": "365e8358843a23944be84b810b1f774ea0223adfccc085f30fd7f4c13dc8a09f", + "signature": "365e8358843a23944be84b810b1f774ea0223adfccc085f30fd7f4c13dc8a09f", + "affectsGlobalScope": true + }, + "../node_modules/@types/node/fs.d.ts": { + "version": "80b94a222a5e83289583833de76f8b3a5962ec4c3803690e20c875a2776ddfdc", + "signature": "80b94a222a5e83289583833de76f8b3a5962ec4c3803690e20c875a2776ddfdc", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/fs/promises.d.ts": { + "version": "05b5679a897598ebe556ee93415b3af1f456e674ea82e4d7afcd716bfe43aa98", + "signature": "05b5679a897598ebe556ee93415b3af1f456e674ea82e4d7afcd716bfe43aa98", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/http.d.ts": { + "version": "35fe02b2c10616cc7ac3db9c15778df7ed9c99276889efdd9be31f342841cfcd", + "signature": "35fe02b2c10616cc7ac3db9c15778df7ed9c99276889efdd9be31f342841cfcd", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/http2.d.ts": { + "version": "f15f1f1104aaf47d25124de81949375416e3f8ee704e3d221bea339e35421edb", + "signature": "f15f1f1104aaf47d25124de81949375416e3f8ee704e3d221bea339e35421edb", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/https.d.ts": { + "version": "c969bf4c7cdfe4d5dd28aa09432f99d09ad1d8d8b839959646579521d0467d1a", + "signature": "c969bf4c7cdfe4d5dd28aa09432f99d09ad1d8d8b839959646579521d0467d1a", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/inspector.d.ts": { + "version": "6c3857edaeeaaf43812f527830ebeece9266b6e8eb5271ab6d2f0008306c9947", + "signature": "6c3857edaeeaaf43812f527830ebeece9266b6e8eb5271ab6d2f0008306c9947", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/module.d.ts": { + "version": "bc6a77e750f4d34584e46b1405b771fb69a224197dd6bafe5b0392a29a70b665", + "signature": "bc6a77e750f4d34584e46b1405b771fb69a224197dd6bafe5b0392a29a70b665", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/net.d.ts": { + "version": "8de97668870cfb20fc9d355d2ef379e897bdd8a98c889c7d8a6de40ee408ad52", + "signature": "8de97668870cfb20fc9d355d2ef379e897bdd8a98c889c7d8a6de40ee408ad52", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/os.d.ts": { + "version": "ed4ae81196cccc10f297d228bca8d02e31058e6d723a3c5bc4be5fb3c61c6a34", + "signature": "ed4ae81196cccc10f297d228bca8d02e31058e6d723a3c5bc4be5fb3c61c6a34", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/path.d.ts": { + "version": "84044697c8b3e08ef24e4b32cfe6440143d07e469a5e34bda0635276d32d9f35", + "signature": "84044697c8b3e08ef24e4b32cfe6440143d07e469a5e34bda0635276d32d9f35", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/perf_hooks.d.ts": { + "version": "4982d94cb6427263c8839d8d6324a8bbe129e931deb61a7380f8fad17ba2cfc0", + "signature": "4982d94cb6427263c8839d8d6324a8bbe129e931deb61a7380f8fad17ba2cfc0", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/process.d.ts": { + "version": "ae4bc1dd4d9de7bbea6ce419db45af82a81358e6014c9e1235b5d252e06f8ab8", + "signature": "ae4bc1dd4d9de7bbea6ce419db45af82a81358e6014c9e1235b5d252e06f8ab8", + "affectsGlobalScope": true + }, + "../node_modules/@types/node/punycode.d.ts": { + "version": "3f6a1fd73c9dc3bd7f4b79bc075297ca6527904df69b0f2c2c94e4c4c7d9a32c", + "signature": "3f6a1fd73c9dc3bd7f4b79bc075297ca6527904df69b0f2c2c94e4c4c7d9a32c", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/querystring.d.ts": { + "version": "884560fda6c3868f925f022adc3a1289fe6507bbb45adb10fa1bbcc73a941bb0", + "signature": "884560fda6c3868f925f022adc3a1289fe6507bbb45adb10fa1bbcc73a941bb0", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/readline.d.ts": { + "version": "6b2bb67b0942bcfce93e1d6fad5f70afd54940a2b13df7f311201fba54b2cbe9", + "signature": "6b2bb67b0942bcfce93e1d6fad5f70afd54940a2b13df7f311201fba54b2cbe9", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/repl.d.ts": { + "version": "acbed967a379b3e9f73237ba9473f8b337eeea14b7dc64d445430b5d695751da", + "signature": "acbed967a379b3e9f73237ba9473f8b337eeea14b7dc64d445430b5d695751da", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/stream.d.ts": { + "version": "272a46cc8f494677af587d17939e61e7db2b1925633e4da0c186ba17f6732521", + "signature": "272a46cc8f494677af587d17939e61e7db2b1925633e4da0c186ba17f6732521", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/string_decoder.d.ts": { + "version": "d67e08745494b000da9410c1ae2fdc9965fc6d593fe0f381a47491f75417d457", + "signature": "d67e08745494b000da9410c1ae2fdc9965fc6d593fe0f381a47491f75417d457", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/timers.d.ts": { + "version": "b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9", + "signature": "b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/tls.d.ts": { + "version": "c52eb62e3388a01b966c57bd14ca0ee9d5f6e656d6a18f6ce6b7cdece63734a3", + "signature": "c52eb62e3388a01b966c57bd14ca0ee9d5f6e656d6a18f6ce6b7cdece63734a3", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/trace_events.d.ts": { + "version": "a77fdb357c78b70142b2fdbbfb72958d69e8f765fd2a3c69946c1018e89d4638", + "signature": "a77fdb357c78b70142b2fdbbfb72958d69e8f765fd2a3c69946c1018e89d4638", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/tty.d.ts": { + "version": "3c2ac350c3baa61fd2b1925844109e098f4376d0768a4643abc82754fd752748", + "signature": "3c2ac350c3baa61fd2b1925844109e098f4376d0768a4643abc82754fd752748", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/url.d.ts": { + "version": "80ffc1786a5dab91b4aa59a72720f02f25df8b7c76b593e04d5e381aec284ccb", + "signature": "80ffc1786a5dab91b4aa59a72720f02f25df8b7c76b593e04d5e381aec284ccb", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/util.d.ts": { + "version": "f28704c27e1bd58068052f5407541a3306f0ffc77f068e2891f46527a4569e25", + "signature": "f28704c27e1bd58068052f5407541a3306f0ffc77f068e2891f46527a4569e25", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/v8.d.ts": { + "version": "289be113bad7ee27ee7fa5b1e373c964c9789a5e9ed7db5ddcb631371120b953", + "signature": "289be113bad7ee27ee7fa5b1e373c964c9789a5e9ed7db5ddcb631371120b953", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/vm.d.ts": { + "version": "baf0b82ffc5d2616f44a6fb1f81e8d798545bebf0c30f5d8b003a1dba1acfb3f", + "signature": "baf0b82ffc5d2616f44a6fb1f81e8d798545bebf0c30f5d8b003a1dba1acfb3f", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/worker_threads.d.ts": { + "version": "c6a5b34f1e725019445754f1e733585f113e0dced75f137bd3c4af5853d3f6ab", + "signature": "c6a5b34f1e725019445754f1e733585f113e0dced75f137bd3c4af5853d3f6ab", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/zlib.d.ts": { + "version": "15fbe50526244954eb2f933546bca6cdcf0db16c9428d099b3b386c1db5799ab", + "signature": "15fbe50526244954eb2f933546bca6cdcf0db16c9428d099b3b386c1db5799ab", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/ts3.4/base.d.ts": { + "version": "d44028ae0127eb3e9fcfa5f55a8b81d64775ce15aca1020fe25c511bbb055834", + "signature": "d44028ae0127eb3e9fcfa5f55a8b81d64775ce15aca1020fe25c511bbb055834", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/globals.global.d.ts": { + "version": "2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1", + "signature": "2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1", + "affectsGlobalScope": true + }, + "../node_modules/@types/node/wasi.d.ts": { + "version": "4e0a4d84b15692ea8669fe4f3d05a4f204567906b1347da7a58b75f45bae48d3", + "signature": "4e0a4d84b15692ea8669fe4f3d05a4f204567906b1347da7a58b75f45bae48d3", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/ts3.6/base.d.ts": { + "version": "ad1ae5ae98eceb9af99061e83e867b9897d267aebc8f3b938c9424deabadf4bb", + "signature": "ad1ae5ae98eceb9af99061e83e867b9897d267aebc8f3b938c9424deabadf4bb", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/assert.d.ts": { + "version": "b3593bd345ebea5e4d0a894c03251a3774b34df3d6db57075c18e089a599ba76", + "signature": "b3593bd345ebea5e4d0a894c03251a3774b34df3d6db57075c18e089a599ba76", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/base.d.ts": { + "version": "e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b", + "signature": "e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b", + "affectsGlobalScope": false + }, + "../node_modules/@types/node/index.d.ts": { + "version": "5825520e2099309182c6e2a2b3061b060d42a098c58f67d1754880a7e2cce99a", + "signature": "5825520e2099309182c6e2a2b3061b060d42a098c58f67d1754880a7e2cce99a", + "affectsGlobalScope": false + }, + "../node_modules/logform/index.d.ts": { + "version": "89c631193ed616083e1ee16611dae34d719029b77274680d0f00dbf3bb8ba998", + "signature": "89c631193ed616083e1ee16611dae34d719029b77274680d0f00dbf3bb8ba998", + "affectsGlobalScope": false + }, + "../node_modules/winston-transport/index.d.ts": { + "version": "d667ec244bc8f65d0ac176f7ea91ef9e2904e7aa10923fbbe843d19f1270593b", + "signature": "d667ec244bc8f65d0ac176f7ea91ef9e2904e7aa10923fbbe843d19f1270593b", + "affectsGlobalScope": false + }, + "../node_modules/winston/lib/winston/config/index.d.ts": { + "version": "e9c33c05be71c17c3b08988fe6755605632a09c5cdd267cede8de5558ec80027", + "signature": "e9c33c05be71c17c3b08988fe6755605632a09c5cdd267cede8de5558ec80027", + "affectsGlobalScope": false + }, + "../node_modules/winston/lib/winston/transports/index.d.ts": { + "version": "3fb6de4789fba0473c4877a4ef4ee002902ccef2b04f620caf2313e4d1b2aecc", + "signature": "3fb6de4789fba0473c4877a4ef4ee002902ccef2b04f620caf2313e4d1b2aecc", + "affectsGlobalScope": false + }, + "../node_modules/winston/index.d.ts": { + "version": "e7c0503e5da78c978e6b9c43dc5728312fa9e19943fd392eca047739e348f283", + "signature": "e7c0503e5da78c978e6b9c43dc5728312fa9e19943fd392eca047739e348f283", + "affectsGlobalScope": false + }, + "../node_modules/class-transformer/metadata/exposeexcludeoptions.d.ts": { + "version": "1aed251ab92dfd0e4901b3b9ad5eccdeb4d3603d57af947ae5f1de967f5ffa6e", + "signature": "1aed251ab92dfd0e4901b3b9ad5eccdeb4d3603d57af947ae5f1de967f5ffa6e", + "affectsGlobalScope": false + }, + "../node_modules/class-transformer/metadata/typemetadata.d.ts": { + "version": "fc14f591b59444c787440f6d8d4df6d96a2eafd8dcb8f3d9773d2d52a88db64f", + "signature": "fc14f591b59444c787440f6d8d4df6d96a2eafd8dcb8f3d9773d2d52a88db64f", + "affectsGlobalScope": false + }, + "../node_modules/class-transformer/transformoperationexecutor.d.ts": { + "version": "1fa98f06f8163fef61071f77e47ad2b7dd26064a43e219a4468df563e911caf3", + "signature": "1fa98f06f8163fef61071f77e47ad2b7dd26064a43e219a4468df563e911caf3", + "affectsGlobalScope": false + }, + "../node_modules/class-transformer/decorators.d.ts": { + "version": "cc8aa0870a0defda3818676ecb8123b2d8b15dc40cdc130834bc81b01a58f2e4", + "signature": "cc8aa0870a0defda3818676ecb8123b2d8b15dc40cdc130834bc81b01a58f2e4", + "affectsGlobalScope": false + }, + "../node_modules/class-transformer/index.d.ts": { + "version": "097d4bf3331df1e138ffdcf92e1117f6841bc8337170d927fd955d5ee8a1674b", + "signature": "097d4bf3331df1e138ffdcf92e1117f6841bc8337170d927fd955d5ee8a1674b", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/validation/validationerror.d.ts": { + "version": "8b5ad058f8dab857050fdbb092b9f1267d22641f0f746cd8a7abee85b48bb83a", + "signature": "8b5ad058f8dab857050fdbb092b9f1267d22641f0f746cd8a7abee85b48bb83a", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/validation/validatoroptions.d.ts": { + "version": "d3c0c471c298dc7115ada6c07f78d4fafb088523a301cb539c5cb44dae009954", + "signature": "d3c0c471c298dc7115ada6c07f78d4fafb088523a301cb539c5cb44dae009954", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/validation-schema/validationschema.d.ts": { + "version": "86f89124a90fae1b90421bcce1e0ba58614383ca72403bfc03ff89761b050a4d", + "signature": "86f89124a90fae1b90421bcce1e0ba58614383ca72403bfc03ff89761b050a4d", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/container.d.ts": { + "version": "5a6fbec8c8e62c37e9685a91a6ef0f6ecaddb1ee90f7b2c2b71b454b40a0d9a6", + "signature": "5a6fbec8c8e62c37e9685a91a6ef0f6ecaddb1ee90f7b2c2b71b454b40a0d9a6", + "affectsGlobalScope": false + }, + "../node_modules/@types/validator/index.d.ts": { + "version": "930f4dcf2bf161cde0f737e6fb1ee8ad1c54f3b7bdf64d18adc4c2521f48aaa8", + "signature": "930f4dcf2bf161cde0f737e6fb1ee8ad1c54f3b7bdf64d18adc4c2521f48aaa8", + "affectsGlobalScope": true + }, + "../node_modules/class-validator/validation/validationtypeoptions.d.ts": { + "version": "367b353f3a003d31a72ad3b1cef5c933b71889ae86cb645520d1681014e79ab9", + "signature": "367b353f3a003d31a72ad3b1cef5c933b71889ae86cb645520d1681014e79ab9", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/validation/validationarguments.d.ts": { + "version": "f049af45e62625e0be51a3badd311110abf1ac8b23f56689e1d850923f6d9aac", + "signature": "f049af45e62625e0be51a3badd311110abf1ac8b23f56689e1d850923f6d9aac", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/decorator/validationoptions.d.ts": { + "version": "e1673523b734b7398986bfcf69766e0966c16aacc6df75b564b1a3ef72d73aec", + "signature": "e1673523b734b7398986bfcf69766e0966c16aacc6df75b564b1a3ef72d73aec", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/decorator/decorators.d.ts": { + "version": "4397a86f1e93376b6ffa3b18efb109e5408f19a131be6f7a0c4e1d3ad2267f65", + "signature": "4397a86f1e93376b6ffa3b18efb109e5408f19a131be6f7a0c4e1d3ad2267f65", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts": { + "version": "8e7c8386c3700086085770ac298d37de34bd290db95938f5c77f1ab83fa67c52", + "signature": "8e7c8386c3700086085770ac298d37de34bd290db95938f5c77f1ab83fa67c52", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/validation/validationtypes.d.ts": { + "version": "84dea2c667e0a5eaa0a94a8be299ce1b0fa9e3f374d95ff40005b410ee8db81a", + "signature": "84dea2c667e0a5eaa0a94a8be299ce1b0fa9e3f374d95ff40005b410ee8db81a", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/metadata/validationmetadataargs.d.ts": { + "version": "8f29f65ce09040175a948aeb38af31f34367123903c49b556a76097bcb8fe813", + "signature": "8f29f65ce09040175a948aeb38af31f34367123903c49b556a76097bcb8fe813", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/metadata/validationmetadata.d.ts": { + "version": "8be85fd3849c702cd34aee594b4e9773dceca300cc358c63d75a3118720b12fe", + "signature": "8be85fd3849c702cd34aee594b4e9773dceca300cc358c63d75a3118720b12fe", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/validation/validator.d.ts": { + "version": "508a161a66e9311ee36b0a70366c3f513e40d4f65a49ef8c45f510922c9460ca", + "signature": "508a161a66e9311ee36b0a70366c3f513e40d4f65a49ef8c45f510922c9460ca", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/register-decorator.d.ts": { + "version": "ea96782b5b69f29f37be42c51f944a0a4a478cbe3fed1d2ec25cffd5bd3617a4", + "signature": "ea96782b5b69f29f37be42c51f944a0a4a478cbe3fed1d2ec25cffd5bd3617a4", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/metadata/constraintmetadata.d.ts": { + "version": "bb71811f328b358d990e298006492de623964862240de7eb6342e5efb8aafae9", + "signature": "bb71811f328b358d990e298006492de623964862240de7eb6342e5efb8aafae9", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/metadata/metadatastorage.d.ts": { + "version": "c569d4d6f3aa771dc1600a73bd8f1b714e10a75218379d93f9cf6bc13bbc0ab0", + "signature": "c569d4d6f3aa771dc1600a73bd8f1b714e10a75218379d93f9cf6bc13bbc0ab0", + "affectsGlobalScope": false + }, + "../node_modules/class-validator/index.d.ts": { + "version": "70aecfd981af29d74ba7ab6667b9cc2a53459d8eb099c139fd2aa54c3059c71d", + "signature": "70aecfd981af29d74ba7ab6667b9cc2a53459d8eb099c139fd2aa54c3059c71d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/options/tablecolumnoptions.d.ts": { + "version": "222ebf19b1260582fd2023a65c5b7da77f730021f05afb9c4ead4b0b339a8c98", + "signature": "222ebf19b1260582fd2023a65c5b7da77f730021f05afb9c4ead4b0b339a8c98", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts": { + "version": "6fa89ecb38fbf2aedef350744e230b68cc4a884ef7b7eb4cd347691b032fe3e4", + "signature": "6fa89ecb38fbf2aedef350744e230b68cc4a884ef7b7eb4cd347691b032fe3e4", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/common/objectliteral.d.ts": { + "version": "ad4277862bdcbe1cf5c1e0d43b39770e1ccc033da92f5b9ff75ca8c3a03a569b", + "signature": "ad4277862bdcbe1cf5c1e0d43b39770e1ccc033da92f5b9ff75ca8c3a03a569b", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/orderbycondition.d.ts": { + "version": "c0dc3e6460b765ad7a83b30afd15e1ecb70c5875e539f0219c4147aadcee419f", + "signature": "c0dc3e6460b765ad7a83b30afd15e1ecb70c5875e539f0219c4147aadcee419f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/tabletypes.d.ts": { + "version": "9f9a648ac2640595ea3d2278f9640c6d628a34bdd679a859ecd31e965bef0d93", + "signature": "9f9a648ac2640595ea3d2278f9640c6d628a34bdd679a859ecd31e965bef0d93", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/tablemetadataargs.d.ts": { + "version": "bed6c7b84b7481bf4c63b75f04cd156baf3a1e563c12fc66a6fc2aa2d7c6a889", + "signature": "bed6c7b84b7481bf4c63b75f04cd156baf3a1e563c12fc66a6fc2aa2d7c6a889", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/treetypes.d.ts": { + "version": "244511898fec5159e9e5d00880e33745a947a09cb9007922dbecc60e007cda6c", + "signature": "244511898fec5159e9e5d00880e33745a947a09cb9007922dbecc60e007cda6c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/treemetadataargs.d.ts": { + "version": "d998de4108394b62762e344ab41c9eb8ed9c7b6490900caffa50b5aaa908532a", + "signature": "d998de4108394b62762e344ab41c9eb8ed9c7b6490900caffa50b5aaa908532a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts": { + "version": "426600545c519edaa799d0bc0d410101d6f42cf063e9e5679233de94b6231622", + "signature": "426600545c519edaa799d0bc0d410101d6f42cf063e9e5679233de94b6231622", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/checkmetadataargs.d.ts": { + "version": "5994ed389d7fc28c03dad647ecb62e5349160bde443b0c7a54e0e10d6368bcbd", + "signature": "5994ed389d7fc28c03dad647ecb62e5349160bde443b0c7a54e0e10d6368bcbd", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/checkmetadata.d.ts": { + "version": "e1ff7df643e1aa1dbf1863113a913358844ed66f1af452e774834b0008e578b2", + "signature": "e1ff7df643e1aa1dbf1863113a913358844ed66f1af452e774834b0008e578b2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/types/columntypes.d.ts": { + "version": "108fbce981e9713358e237b3025d46869b40d20c4741cc61535883f2f057a43c", + "signature": "108fbce981e9713358e237b3025d46869b40d20c4741cc61535883f2f057a43c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/relationtypes.d.ts": { + "version": "266f841bfbb4358874546e9b55f87c99f0b88e28c42544be9cdf7676a9bbdc9a", + "signature": "266f841bfbb4358874546e9b55f87c99f0b88e28c42544be9cdf7676a9bbdc9a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts": { + "version": "905fd426fbc5b7ed3d7f7caa57e1bb66f515f54c7a7e52e79bfdc5599fd62025", + "signature": "905fd426fbc5b7ed3d7f7caa57e1bb66f515f54c7a7e52e79bfdc5599fd62025", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts": { + "version": "c3218428a1422d031abb242c791f76882a959391d676697c52c58feb123cc739", + "signature": "c3218428a1422d031abb242c791f76882a959391d676697c52c58feb123cc739", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts": { + "version": "8744deeec972d07732ef9260eff40135ef860660f5613440a0e2060f9263c39e", + "signature": "8744deeec972d07732ef9260eff40135ef860660f5613440a0e2060f9263c39e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts": { + "version": "4cea506dcbfb8f7b84d27aa211776d19659075bbf68f898a8643fc461b120c04", + "signature": "4cea506dcbfb8f7b84d27aa211776d19659075bbf68f898a8643fc461b120c04", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/relationoptions.d.ts": { + "version": "e7c6756677affc79598f90f52cbaccf103f2d548f1362b34c5989c6c6cacb47d", + "signature": "e7c6756677affc79598f90f52cbaccf103f2d548f1362b34c5989c6c6cacb47d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/propertytypeinfunction.d.ts": { + "version": "f855d47e6066386d0c85b891c9ee4870b34b43d55dcb3563e59e60c0759be6e4", + "signature": "f855d47e6066386d0c85b891c9ee4870b34b43d55dcb3563e59e60c0759be6e4", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/relationtypeinfunction.d.ts": { + "version": "63d8839c609a48c023dea11798a38e09e3b9227ba99756d45930178e740757b6", + "signature": "63d8839c609a48c023dea11798a38e09e3b9227ba99756d45930178e740757b6", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/relationmetadataargs.d.ts": { + "version": "3d9d985d41e536fcf79fc95082925c2f1ae5ade75814ad2bd70c0944747f7ac4", + "signature": "3d9d985d41e536fcf79fc95082925c2f1ae5ade75814ad2bd70c0944747f7ac4", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/relationmetadata.d.ts": { + "version": "907f5689cac52d2af1b6351e5071a863997505cc77de5d37fac5839d133a52de", + "signature": "907f5689cac52d2af1b6351e5071a863997505cc77de5d37fac5839d133a52de", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/embeddedmetadataargs.d.ts": { + "version": "fff823cca0eb5103f7bd05413e50c1ad99ebe62e8edb273de0c43b507e91e097", + "signature": "fff823cca0eb5103f7bd05413e50c1ad99ebe62e8edb273de0c43b507e91e097", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/alias.d.ts": { + "version": "8ce2c478a580e69988240a7ab9f213116889a5ec32665cca4d8eb68ff76346c7", + "signature": "8ce2c478a580e69988240a7ab9f213116889a5ec32665cca4d8eb68ff76346c7", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/joinattribute.d.ts": { + "version": "e3d6921618e7c7c17d9300f6d3ba34024d7b101f0c6627591b1d06acc40c770f", + "signature": "e3d6921618e7c7c17d9300f6d3ba34024d7b101f0c6627591b1d06acc40c770f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/relation-id/relationidattribute.d.ts": { + "version": "80fde1c35ef0e78d242d8c627436a25dd8b9f3ae503a8bd7f0da27746666c9d9", + "signature": "80fde1c35ef0e78d242d8c627436a25dd8b9f3ae503a8bd7f0da27746666c9d9", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/relation-count/relationcountattribute.d.ts": { + "version": "baa105533ba19a8fd49b8d2511efe4064b38f7a2aaef8346366177ba98247cdf", + "signature": "baa105533ba19a8fd49b8d2511efe4064b38f7a2aaef8346366177ba98247cdf", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/selectquery.d.ts": { + "version": "3b5c6f451b7ad87e3fcd2008d3a6cb69bd33803e541e9c0fe35754201389158f", + "signature": "3b5c6f451b7ad87e3fcd2008d3a6cb69bd33803e541e9c0fe35754201389158f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/selectquerybuilderoption.d.ts": { + "version": "548ef4a7ba09bdd5a03e3be32ecfd4efac910d86691444f80f56d95bd65d6d9d", + "signature": "548ef4a7ba09bdd5a03e3be32ecfd4efac910d86691444f80f56d95bd65d6d9d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts": { + "version": "7f9cf5124934f2291e1e10512b6f2f48b0428351325941aa116379585e266b70", + "signature": "7f9cf5124934f2291e1e10512b6f2f48b0428351325941aa116379585e266b70", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/brackets.d.ts": { + "version": "6469c21248f776364ab445effc4d1fe989d267315d4659a55a889e217c64f579", + "signature": "6469c21248f776364ab445effc4d1fe989d267315d4659a55a889e217c64f579", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/whereexpression.d.ts": { + "version": "887f9008110a20d9d4d92bff1690a03da2850d66fc7a6132c216340bcdf201e5", + "signature": "887f9008110a20d9d4d92bff1690a03da2850d66fc7a6132c216340bcdf201e5", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/result/updateresult.d.ts": { + "version": "b84e95b1ee751a809025e8ded4953cd577befdabd95960d89dea4574418eb128", + "signature": "b84e95b1ee751a809025e8ded4953cd577befdabd95960d89dea4574418eb128", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/querypartialentity.d.ts": { + "version": "4d26f8d4e5c2a8de9285e82ea0ce5f5ed986866b4a77b9082536a732e7f40c36", + "signature": "4d26f8d4e5c2a8de9285e82ea0ce5f5ed986866b4a77b9082536a732e7f40c36", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/updatequerybuilder.d.ts": { + "version": "83764e497171dc4d91dd7c7041c09005eaadbe43ddcff075d771ade44a1dafe0", + "signature": "83764e497171dc4d91dd7c7041c09005eaadbe43ddcff075d771ade44a1dafe0", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/common/objecttype.d.ts": { + "version": "42f44c5a2957b5ebddf155f15c111f281c3446e55bddd6a6cb9505d7a683ee58", + "signature": "42f44c5a2957b5ebddf155f15c111f281c3446e55bddd6a6cb9505d7a683ee58", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/common/entitytarget.d.ts": { + "version": "b19fc2f23b90bdec3fd4c82e4925531bbcb14faf01b5b193177c400589cc3e38", + "signature": "b19fc2f23b90bdec3fd4c82e4925531bbcb14faf01b5b193177c400589cc3e38", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts": { + "version": "e1785750052b51cfc48f5b782125479d52645146d58805688b46becabf2f6c81", + "signature": "e1785750052b51cfc48f5b782125479d52645146d58805688b46becabf2f6c81", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/deletequerybuilder.d.ts": { + "version": "edc60810bdaf64cfc55c1dfa18e1da2057e4cffe392d7096ac399502598e7449", + "signature": "edc60810bdaf64cfc55c1dfa18e1da2057e4cffe392d7096ac399502598e7449", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/softdeletequerybuilder.d.ts": { + "version": "41aba617a085c1a44c755475b21d44fd000b56f64d8d7c0729e46d66e685bb10", + "signature": "41aba617a085c1a44c755475b21d44fd000b56f64d8d7c0729e46d66e685bb10", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/result/insertresult.d.ts": { + "version": "215004d34fc5418fa2d047440992c6a55993dd1d808a0c7991a7cd7688f49681", + "signature": "215004d34fc5418fa2d047440992c6a55993dd1d808a0c7991a7cd7688f49681", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/insertquerybuilder.d.ts": { + "version": "cc9652e05bd8c4bc02a98440201deefa56b432879daed6b41f1595ce702e49f3", + "signature": "cc9652e05bd8c4bc02a98440201deefa56b432879daed6b41f1595ce702e49f3", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/relationquerybuilder.d.ts": { + "version": "921274e649ce4eafc40a63f0f155bd5d26d4ed8e6d3002c9f0fc066fbcb718d9", + "signature": "921274e649ce4eafc40a63f0f155bd5d26d4ed8e6d3002c9f0fc066fbcb718d9", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/findoperatortype.d.ts": { + "version": "7d659e9b2e21d1ead6a231cccd32fe699e3010bbd4b12b98557f689eff8ac239", + "signature": "7d659e9b2e21d1ead6a231cccd32fe699e3010bbd4b12b98557f689eff8ac239", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/findoperator.d.ts": { + "version": "ff9bcf9a57b109dceedfc4b3a7e8ef42e1b4939c47428bacd0415520391c9705", + "signature": "ff9bcf9a57b109dceedfc4b3a7e8ef42e1b4939c47428bacd0415520391c9705", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/querybuilder.d.ts": { + "version": "6cdeda19e2f4d71bbd700b79952a9f8a52ea63aff77bc818a0e902742914b6b8", + "signature": "6cdeda19e2f4d71bbd700b79952a9f8a52ea63aff77bc818a0e902742914b6b8", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/platform/platformtools.d.ts": { + "version": "2646e316872aa61ed09e6272fb07ecd766a7977fbf37080aa6429be40907c1e7", + "signature": "2646e316872aa61ed09e6272fb07ecd766a7977fbf37080aa6429be40907c1e7", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts": { + "version": "3163241e7064db98f45d8ad03281dad84fdb5124fd104e84aea9747a06ccdd61", + "signature": "3163241e7064db98f45d8ad03281dad84fdb5124fd104e84aea9747a06ccdd61", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/relationidmetadataargs.d.ts": { + "version": "91464e0beb8309e6694eb09b58777bd1d86a058b69a5752d4600e1550fc5b22c", + "signature": "91464e0beb8309e6694eb09b58777bd1d86a058b69a5752d4600e1550fc5b22c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/relationidmetadata.d.ts": { + "version": "6a219f12b3e853398d51192736707e320699a355052687bad4729784649ff519", + "signature": "6a219f12b3e853398d51192736707e320699a355052687bad4729784649ff519", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/relationcountmetadataargs.d.ts": { + "version": "c86fea295c21ea01c93410eba2ec6e4f918b97d0c3bf9f1bb1960eabe417e7eb", + "signature": "c86fea295c21ea01c93410eba2ec6e4f918b97d0c3bf9f1bb1960eabe417e7eb", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/relationcountmetadata.d.ts": { + "version": "4294a84634c56529e67301a3258448019e41c101de6b9646ea41c0ecdc70df92", + "signature": "4294a84634c56529e67301a3258448019e41c101de6b9646ea41c0ecdc70df92", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/types/eventlistenertypes.d.ts": { + "version": "55f75f5fa3413eb3a94bc35dd1493643a69c8696af0a817166210a80b01841b6", + "signature": "55f75f5fa3413eb3a94bc35dd1493643a69c8696af0a817166210a80b01841b6", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/entitylistenermetadataargs.d.ts": { + "version": "27f24ba43083d406b372e9eff72dbc378afa0503dac1c1dd32499cc92fc9cb22", + "signature": "27f24ba43083d406b372e9eff72dbc378afa0503dac1c1dd32499cc92fc9cb22", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/entitylistenermetadata.d.ts": { + "version": "12594611a054ca7fe69962f690a4e79922d563b4b434716eb855d63a9d11a78f", + "signature": "12594611a054ca7fe69962f690a4e79922d563b4b434716eb855d63a9d11a78f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/uniquemetadataargs.d.ts": { + "version": "276265ce4c584e1c48a326adde8c28256988f1e46f8b2bb44e864353dbddc372", + "signature": "276265ce4c584e1c48a326adde8c28256988f1e46f8b2bb44e864353dbddc372", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/uniquemetadata.d.ts": { + "version": "c1936ce89b6aac997231b46d32228e924573d023db7b48504060bbb8604d42f1", + "signature": "c1936ce89b6aac997231b46d32228e924573d023db7b48504060bbb8604d42f1", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts": { + "version": "4d2644244dc91caad6af16b433cc6bf3bc3100f560edf8e579d95d6dd21ce10c", + "signature": "4d2644244dc91caad6af16b433cc6bf3bc3100f560edf8e579d95d6dd21ce10c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts": { + "version": "b0e6f1b1569779cf567317c2265d67460d1d3b4de4e79126533109d87dc16d50", + "signature": "b0e6f1b1569779cf567317c2265d67460d1d3b4de4e79126533109d87dc16d50", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/columncommonoptions.d.ts": { + "version": "cdd8bcdd627ca9923b440262b4e3d9be61ab110b5778e92ee72ca83f59bf061a", + "signature": "cdd8bcdd627ca9923b440262b4e3d9be61ab110b5778e92ee72ca83f59bf061a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/columnoptions.d.ts": { + "version": "7a8d78ea4e51c14996d9e405158495454fb6f32682660f5ee35a9676a6988585", + "signature": "7a8d78ea4e51c14996d9e405158495454fb6f32682660f5ee35a9676a6988585", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/types/columnmode.d.ts": { + "version": "4c608b30e56a915fa9ae7392127d2c2dc1c6840eb5b031f4c52f1011403ecc79", + "signature": "4c608b30e56a915fa9ae7392127d2c2dc1c6840eb5b031f4c52f1011403ecc79", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/columnmetadataargs.d.ts": { + "version": "80c538ee6a62249e77ba3de07efb23d4a7ca8946499c065261bf5079f1cd3cf0", + "signature": "80c538ee6a62249e77ba3de07efb23d4a7ca8946499c065261bf5079f1cd3cf0", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/columnmetadata.d.ts": { + "version": "67286a24af8ec4ad75f2e5167f361f926f2f1052b2305c031c310c10713ad417", + "signature": "67286a24af8ec4ad75f2e5167f361f926f2f1052b2305c031c310c10713ad417", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/exclusionmetadataargs.d.ts": { + "version": "c349cea980e28566998972522156daac849af8a9e4a9d59074845e319b975f5d", + "signature": "c349cea980e28566998972522156daac849af8a9e4a9d59074845e319b975f5d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/exclusionmetadata.d.ts": { + "version": "0370682454d1d243b75a7c7031bc8589531a472e927b67854c1b53b55ee496ea", + "signature": "0370682454d1d243b75a7c7031bc8589531a472e927b67854c1b53b55ee496ea", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/entitymetadata.d.ts": { + "version": "0ef3d1e3a05c6f183eda47d33b264ab0d44e58b8cf6197966332f91752bb98fb", + "signature": "0ef3d1e3a05c6f183eda47d33b264ab0d44e58b8cf6197966332f91752bb98fb", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/indexmetadataargs.d.ts": { + "version": "66e6c7792fb75f40b2721367b9b5db188614487cafd30008088ae50a85618f1e", + "signature": "66e6c7792fb75f40b2721367b9b5db188614487cafd30008088ae50a85618f1e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata/indexmetadata.d.ts": { + "version": "f7aae4a6c2b1f77c184dac096c3a4b9f2e32d4d23fe73ce7f30141912a679097", + "signature": "f7aae4a6c2b1f77c184dac096c3a4b9f2e32d4d23fe73ce7f30141912a679097", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/options/tableindexoptions.d.ts": { + "version": "81dfa060d1bd2af2a0ca909edf133b88c06b783b07378b68f1e7750677aa30ce", + "signature": "81dfa060d1bd2af2a0ca909edf133b88c06b783b07378b68f1e7750677aa30ce", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts": { + "version": "86038e3a6821c05532dd1dbe8183f735a26585137af10fed17807a20df861ab8", + "signature": "86038e3a6821c05532dd1dbe8183f735a26585137af10fed17807a20df861ab8", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/options/tableforeignkeyoptions.d.ts": { + "version": "1489106535f442d603fc3a51b79e82fb02271ed6b9a86ad16a701125232d4944", + "signature": "1489106535f442d603fc3a51b79e82fb02271ed6b9a86ad16a701125232d4944", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts": { + "version": "5171b8b63146618b3163b9422fe4478b99e296362957d1bbbd7891670cdf6dff", + "signature": "5171b8b63146618b3163b9422fe4478b99e296362957d1bbbd7891670cdf6dff", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/options/tableuniqueoptions.d.ts": { + "version": "c0df860f73695699aadf57bf4ed9884de07e4744bdf9b0f74f0707ad9a5f0c0d", + "signature": "c0df860f73695699aadf57bf4ed9884de07e4744bdf9b0f74f0707ad9a5f0c0d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/options/tablecheckoptions.d.ts": { + "version": "5eb09226bfa1928721a438e37c004647fc19d8d1f4817bddcc350e57fb32935f", + "signature": "5eb09226bfa1928721a438e37c004647fc19d8d1f4817bddcc350e57fb32935f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/options/tableexclusionoptions.d.ts": { + "version": "2752e949c871f2cbd146efa21ebc34e4693c0ac8020401f90a45d4e150682181", + "signature": "2752e949c871f2cbd146efa21ebc34e4693c0ac8020401f90a45d4e150682181", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/options/tableoptions.d.ts": { + "version": "cdc8f77efe2cf6361d2b79395ee8ba15adf8bdc22e8c3bebf7bcd0af9dedddb8", + "signature": "cdc8f77efe2cf6361d2b79395ee8ba15adf8bdc22e8c3bebf7bcd0af9dedddb8", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts": { + "version": "1f19859b5b619258d8d83f7634ec0c326f95e282726562918da4b089b24daa26", + "signature": "1f19859b5b619258d8d83f7634ec0c326f95e282726562918da4b089b24daa26", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts": { + "version": "338eef608f7e8c0d1c1b5f7729572289008875288a7a86a922aa0e94c104ca10", + "signature": "338eef608f7e8c0d1c1b5f7729572289008875288a7a86a922aa0e94c104ca10", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts": { + "version": "a09ceb2a8c55f2dac2c2e2aadf0a2e209ddc88015b40fc57bf4135d38bab1083", + "signature": "a09ceb2a8c55f2dac2c2e2aadf0a2e209ddc88015b40fc57bf4135d38bab1083", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/table/table.d.ts": { + "version": "72c486918a7a9315c21dfdeabdd9b6c99aa8480741f18453fe70c86fb43c0431", + "signature": "72c486918a7a9315c21dfdeabdd9b6c99aa8480741f18453fe70c86fb43c0431", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/joinoptions.d.ts": { + "version": "5e2a89ac5f4644d52de963080b427a89e0ed32d8c8298587f47ceded4e369d74", + "signature": "5e2a89ac5f4644d52de963080b427a89e0ed32d8c8298587f47ceded4e369d74", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/findconditions.d.ts": { + "version": "c341d6286cbb548e9910ab0c1ba1b9985df138419a515d671f49b1fd4d65b29a", + "signature": "c341d6286cbb548e9910ab0c1ba1b9985df138419a515d671f49b1fd4d65b29a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/findoneoptions.d.ts": { + "version": "2de27809a0c0af8360a5b927d67fe5f97d154550d3aba449c0a0043d282ef957", + "signature": "2de27809a0c0af8360a5b927d67fe5f97d154550d3aba449c0a0043d282ef957", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/findmanyoptions.d.ts": { + "version": "b96760c030c41fa078b35ea05fc3e7e4d2a81710a8329271d42b6abc110d5dbe", + "signature": "b96760c030c41fa078b35ea05fc3e7e4d2a81710a8329271d42b6abc110d5dbe", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/common/deeppartial.d.ts": { + "version": "e48c779f2ed51010907b3be4015586a6c2ab72055edb26897984379d939ede98", + "signature": "e48c779f2ed51010907b3be4015586a6c2ab72055edb26897984379d939ede98", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/repository/removeoptions.d.ts": { + "version": "174a3381f98fc78c451528cb1aa1baaa37a51852ec6fa90d42efd876301537c1", + "signature": "174a3381f98fc78c451528cb1aa1baaa37a51852ec6fa90d42efd876301537c1", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/repository/saveoptions.d.ts": { + "version": "1154ed167b954ffb24a95ec3b11b1519a597024e7fda1df63c144962bc523aaf", + "signature": "1154ed167b954ffb24a95ec3b11b1519a597024e7fda1df63c144962bc523aaf", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/mongodb/typings.d.ts": { + "version": "7a37aff73aa8cae7bbf546c5302da12a89189548cd7b77df66250ff9e23f86d6", + "signature": "7a37aff73aa8cae7bbf546c5302da12a89189548cd7b77df66250ff9e23f86d6", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/repository/repository.d.ts": { + "version": "35e9d5e09c047f08d130fd65c9a4089c9b1951a43a66f2f3c158f27c380bd887", + "signature": "35e9d5e09c047f08d130fd65c9a4089c9b1951a43a66f2f3c158f27c380bd887", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/options/viewoptions.d.ts": { + "version": "50aa3a76572abfac7b911ded8153dc9257ddf4fd49b797479beef3b8b9aa1d28", + "signature": "50aa3a76572abfac7b911ded8153dc9257ddf4fd49b797479beef3b8b9aa1d28", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/view/view.d.ts": { + "version": "c9b422ed938d62f1af18290949ee2184b9338011f36cb299e1950f6da52621d2", + "signature": "c9b422ed938d62f1af18290949ee2184b9338011f36cb299e1950f6da52621d2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/query.d.ts": { + "version": "3d855ca51e9e1b40140265a003600488d723d926d7c1a04736a5883fd23767ef", + "signature": "3d855ca51e9e1b40140265a003600488d723d926d7c1a04736a5883fd23767ef", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/sqlinmemory.d.ts": { + "version": "04d5bfb0a0eecd66c0b3f522477bf69065a9703be8300fbea5566a0fc4a97b9d", + "signature": "04d5bfb0a0eecd66c0b3f522477bf69065a9703be8300fbea5566a0fc4a97b9d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/event/transactioncommitevent.d.ts": { + "version": "09423fcf77b1f327971c2b22ee16e744736a403b33e414fe54325296537ac9ac", + "signature": "09423fcf77b1f327971c2b22ee16e744736a403b33e414fe54325296537ac9ac", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/event/transactionrollbackevent.d.ts": { + "version": "f3f4278ff190e4896f44e1853bb6846be75e2fdca494a6d553f375f97424a516", + "signature": "f3f4278ff190e4896f44e1853bb6846be75e2fdca494a6d553f375f97424a516", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/event/transactionstartevent.d.ts": { + "version": "a945caa7e11a3671c7b9bf3f383e5f8ebeb90f35b66ac395bab48faf9752aec7", + "signature": "a945caa7e11a3671c7b9bf3f383e5f8ebeb90f35b66ac395bab48faf9752aec7", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/event/updateevent.d.ts": { + "version": "0886e9de5fccd636d23bfe8223dd8d616d653c1c40a801a28f9c87be6d6a901d", + "signature": "0886e9de5fccd636d23bfe8223dd8d616d653c1c40a801a28f9c87be6d6a901d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/event/removeevent.d.ts": { + "version": "a4bc52405b5e5e7b1371ed38baf9dc693833cb531402da9cc633c48ab14d4d4c", + "signature": "a4bc52405b5e5e7b1371ed38baf9dc693833cb531402da9cc633c48ab14d4d4c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/event/insertevent.d.ts": { + "version": "15640a3fd0e6bc66cde18ed25f0cdd44c015bd0ac68ac0809b4ae30c20460d9f", + "signature": "15640a3fd0e6bc66cde18ed25f0cdd44c015bd0ac68ac0809b4ae30c20460d9f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/event/loadevent.d.ts": { + "version": "a0b52388e287a453c333dcdbdfd9e450174d1a00026152e9f25641e7f3a98d4c", + "signature": "a0b52388e287a453c333dcdbdfd9e450174d1a00026152e9f25641e7f3a98d4c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts": { + "version": "bf933fac182d47797b18f8fe63e56a300f924f1bc1fc1243e55ab7ea045a5fd6", + "signature": "bf933fac182d47797b18f8fe63e56a300f924f1bc1fc1243e55ab7ea045a5fd6", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/broadcasterresult.d.ts": { + "version": "77a1010705f6cf4be6cc24701d8daa472ae2ea855f6e3d40409150eb3d687509", + "signature": "77a1010705f6cf4be6cc24701d8daa472ae2ea855f6e3d40409150eb3d687509", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/subscriber/broadcaster.d.ts": { + "version": "fcdb3b7823e8cd2da703a7eef46e7f7de53470c60b8ea0659c608022e8f6ad68", + "signature": "fcdb3b7823e8cd2da703a7eef46e7f7de53470c60b8ea0659c608022e8f6ad68", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/mongodb/mongoqueryrunner.d.ts": { + "version": "122e9f53a8b33e20d77f9ac008e74717f9ae4c9e591dd71ccf5c3e62b5e4f60a", + "signature": "122e9f53a8b33e20d77f9ac008e74717f9ae4c9e591dd71ccf5c3e62b5e4f60a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts": { + "version": "d149b6071e534137c5538b2e889928842b188df087837a66194174525c65d8bf", + "signature": "d149b6071e534137c5538b2e889928842b188df087837a66194174525c65d8bf", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/repository/mongorepository.d.ts": { + "version": "3fb97479497f8ca1c32d2a42ca3dffdf9e1622b570a3c3ad86676d8e11e3f6c1", + "signature": "3fb97479497f8ca1c32d2a42ca3dffdf9e1622b570a3c3ad86676d8e11e3f6c1", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/repository/treerepository.d.ts": { + "version": "22d3e253886bab94c7c452865c8c9ee2592acf37a7f497e48d6a7963262be2af", + "signature": "22d3e253886bab94c7c452865c8c9ee2592acf37a7f497e48d6a7963262be2af", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/transformer/plainobjecttonewentitytransformer.d.ts": { + "version": "247ee0b7d2796444a3481811b5ce830a5fa289f40b310f0dd024251e91c7e179", + "signature": "247ee0b7d2796444a3481811b5ce830a5fa289f40b310f0dd024251e91c7e179", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/types/isolationlevel.d.ts": { + "version": "7173502081d153bd441c3c6e053984bf390961fc248e5f7d4b41ae7747839359", + "signature": "7173502081d153bd441c3c6e053984bf390961fc248e5f7d4b41ae7747839359", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-manager/entitymanager.d.ts": { + "version": "7b1fd1a15b6561ca774890ef243fd25e49e61eadbc8153517e26c6a7b99c151a", + "signature": "7b1fd1a15b6561ca774890ef243fd25e49e61eadbc8153517e26c6a7b99c151a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-runner/queryrunner.d.ts": { + "version": "0ca3378f33be464877c4c93df0ecadbefa1302bc2bd5cd9f56c19d6efa962913", + "signature": "0ca3378f33be464877c4c93df0ecadbefa1302bc2bd5cd9f56c19d6efa962913", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/types/mappedcolumntypes.d.ts": { + "version": "ac3a69c529ab256532825b08902aec65d0d88c66963e39ae19a3d214953aedc5", + "signature": "ac3a69c529ab256532825b08902aec65d0d88c66963e39ae19a3d214953aedc5", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/schema-builder/schemabuilder.d.ts": { + "version": "d5e3e13faca961679bed01d80bc38b3336e7de598ebf9b03ec7d31081af735ad", + "signature": "d5e3e13faca961679bed01d80bc38b3336e7de598ebf9b03ec7d31081af735ad", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/types/datatypedefaults.d.ts": { + "version": "de05a488fb501de32c1ec0af2a6ddfe0fdef46935b9f4ffb3922d355b15da674", + "signature": "de05a488fb501de32c1ec0af2a6ddfe0fdef46935b9f4ffb3922d355b15da674", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-schema/entityschemaindexoptions.d.ts": { + "version": "733f5fed6c0e8717a32e8f4145566fc9819dd7b39c9d88973c834bcdc111f454", + "signature": "733f5fed6c0e8717a32e8f4145566fc9819dd7b39c9d88973c834bcdc111f454", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/spatialcolumnoptions.d.ts": { + "version": "1cf086abc7abb48f994d986b3cc6bdf70c343a5661315f6bb982378b21b55435", + "signature": "1cf086abc7abb48f994d986b3cc6bdf70c343a5661315f6bb982378b21b55435", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-schema/entityschemacolumnoptions.d.ts": { + "version": "4707c2fd3cc63371167c5b935c3dc66b10ed13c0106f4527d910892837929ebd", + "signature": "4707c2fd3cc63371167c5b935c3dc66b10ed13c0106f4527d910892837929ebd", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts": { + "version": "74fe5c4fb7d9ee01e8690638e4b60a14b909240c14632ac4e7662995ad004b90", + "signature": "74fe5c4fb7d9ee01e8690638e4b60a14b909240c14632ac4e7662995ad004b90", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/jointablemultiplecolumnsoptions.d.ts": { + "version": "3c725b4c73af44a1eedda6cbbea47d8fdc71d464e13633750aebe0af76bc2469", + "signature": "3c725b4c73af44a1eedda6cbbea47d8fdc71d464e13633750aebe0af76bc2469", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-schema/entityschemarelationoptions.d.ts": { + "version": "40ec6f4d834bd65728739d332cbf9fef3b517971eca426f1d8a846693be171bf", + "signature": "40ec6f4d834bd65728739d332cbf9fef3b517971eca426f1d8a846693be171bf", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-schema/entityschemauniqueoptions.d.ts": { + "version": "76a53f6b4062f3cc3c54d2a8b731f4b8d2782a7d3524115d3c977ca181306f39", + "signature": "76a53f6b4062f3cc3c54d2a8b731f4b8d2782a7d3524115d3c977ca181306f39", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-schema/entityschemacheckoptions.d.ts": { + "version": "b3ded8e50b3cdf548d7c8d3b3b5b2105932b04a2f08b392564f4bc499407e4e5", + "signature": "b3ded8e50b3cdf548d7c8d3b3b5b2105932b04a2f08b392564f4bc499407e4e5", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-schema/entityschemaexclusionoptions.d.ts": { + "version": "4ed2d8fb4c598719985b8fbef65f7de9c3f5ae6a233fc0fe20bd00193c490908", + "signature": "4ed2d8fb4c598719985b8fbef65f7de9c3f5ae6a233fc0fe20bd00193c490908", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-schema/entityschemaoptions.d.ts": { + "version": "53a86aae1d9aaee78c042d6ed6695f301663114f62b16b9d061fbd711ef69d36", + "signature": "53a86aae1d9aaee78c042d6ed6695f301663114f62b16b9d061fbd711ef69d36", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-schema/entityschema.d.ts": { + "version": "1e9dd4dc39eb80dacd5573944aa8b3f84854e8397ac3ec0a86feadd4e2ce40d4", + "signature": "1e9dd4dc39eb80dacd5573944aa8b3f84854e8397ac3ec0a86feadd4e2ce40d4", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/logger/loggeroptions.d.ts": { + "version": "c20fe75426bf9281b4b5ac93243ca7d93c55d9e9f5146b755028a2136302bef7", + "signature": "c20fe75426bf9281b4b5ac93243ca7d93c55d9e9f5146b755028a2136302bef7", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/types/databasetype.d.ts": { + "version": "e734a1a38f9d0d044926d3e9cc7c399097df6498fc0a379656c9955545786027", + "signature": "e734a1a38f9d0d044926d3e9cc7c399097df6498fc0a379656c9955545786027", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/logger/logger.d.ts": { + "version": "a49e3af85d547004bcd8535e19b328cd39f7164abcb4e10e52763e167740abbb", + "signature": "a49e3af85d547004bcd8535e19b328cd39f7164abcb4e10e52763e167740abbb", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/cache/queryresultcacheoptions.d.ts": { + "version": "9b1f38160faedf5b9fa8b547c095c9f657c64f0704d8cc9b0691627cee7aee90", + "signature": "9b1f38160faedf5b9fa8b547c095c9f657c64f0704d8cc9b0691627cee7aee90", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/cache/queryresultcache.d.ts": { + "version": "abcb5db28886eec7437cb341a42fec07580fb1fbc927d1bd4f0f22b558a7aa9a", + "signature": "abcb5db28886eec7437cb341a42fec07580fb1fbc927d1bd4f0f22b558a7aa9a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts": { + "version": "2ccd6e2511abe69058e02186314e80ed85c39c8d69be7e655b44ca552d9e586b", + "signature": "2ccd6e2511abe69058e02186314e80ed85c39c8d69be7e655b44ca552d9e586b", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/types/replicationmode.d.ts": { + "version": "9d1d33309b69e7a14fcaff4c9e948071a3de86492d6a45ab74a6b5106d093fee", + "signature": "9d1d33309b69e7a14fcaff4c9e948071a3de86492d6a45ab74a6b5106d093fee", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/driver.d.ts": { + "version": "d9c67760cf98bd58418f9232eafeca63465e26309036ec372a2a4ed1e2b1be12", + "signature": "d9c67760cf98bd58418f9232eafeca63465e26309036ec372a2a4ed1e2b1be12", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/migration/migrationinterface.d.ts": { + "version": "833f0c05b6f98feea4028eda2de08ea075a5094c01805399a6d93657dbab1ccf", + "signature": "833f0c05b6f98feea4028eda2de08ea075a5094c01805399a6d93657dbab1ccf", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/migration/migration.d.ts": { + "version": "371ab2e2daed8d299bfe0c5fbf1e5a588235854c5f705704540f61e3127cdbb4", + "signature": "371ab2e2daed8d299bfe0c5fbf1e5a588235854c5f705704540f61e3127cdbb4", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectioncredentialsoptions.d.ts": { + "version": "ab159dda8873292919fb0d498cafd4c922c2969928eced2b834062b4ffc2d7c7", + "signature": "ab159dda8873292919fb0d498cafd4c922c2969928eced2b834062b4ffc2d7c7", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectionoptions.d.ts": { + "version": "c10324442297210833600b677d3c5478e839c0cf5c86630588c5079d81ce9446", + "signature": "c10324442297210833600b677d3c5478e839c0cf5c86630588c5079d81ce9446", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/mysql/mysqlconnectioncredentialsoptions.d.ts": { + "version": "7633171474267efa7aee90dffdfac797e2c6b2c5589260231e114cf98d37e1dc", + "signature": "7633171474267efa7aee90dffdfac797e2c6b2c5589260231e114cf98d37e1dc", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/mysql/mysqlconnectionoptions.d.ts": { + "version": "c5f040a3f96cb9e644fe69e77a017f69833c891d9943dfb75f7b9707337e7cc2", + "signature": "c5f040a3f96cb9e644fe69e77a017f69833c891d9943dfb75f7b9707337e7cc2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/postgres/postgresconnectioncredentialsoptions.d.ts": { + "version": "32f9169fb6cad29917b3f1670550df48ba30dee34dcb0bffaed13947b2e0d2d2", + "signature": "32f9169fb6cad29917b3f1670550df48ba30dee34dcb0bffaed13947b2e0d2d2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/postgres/postgresconnectionoptions.d.ts": { + "version": "6a44b6f04f21a80984cd0e1d10847df9da0d45519dc443933bee5d77c1359408", + "signature": "6a44b6f04f21a80984cd0e1d10847df9da0d45519dc443933bee5d77c1359408", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/sqlite/sqliteconnectionoptions.d.ts": { + "version": "c1fa8be5a9ffa9bd54b74a682971f33dd99224e7238caf1ba07746bac2426592", + "signature": "c1fa8be5a9ffa9bd54b74a682971f33dd99224e7238caf1ba07746bac2426592", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectioncredentialsoptions.d.ts": { + "version": "3aa4e1103412ab3e40fc3c26670f95354dd4d6c33d280cd4a098cd068166989c", + "signature": "3aa4e1103412ab3e40fc3c26670f95354dd4d6c33d280cd4a098cd068166989c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectionoptions.d.ts": { + "version": "acf681c7f70b9a51256aecbfeace13b4b1341f0f2f646252d80810eebc7d54d6", + "signature": "acf681c7f70b9a51256aecbfeace13b4b1341f0f2f646252d80810eebc7d54d6", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/oracle/oracleconnectioncredentialsoptions.d.ts": { + "version": "3b3865dfc48b75d6d8e2f59ff29d3253509a8efbc51cf7d1ef13bf6b3f52c0a2", + "signature": "3b3865dfc48b75d6d8e2f59ff29d3253509a8efbc51cf7d1ef13bf6b3f52c0a2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/oracle/oracleconnectionoptions.d.ts": { + "version": "f50e467dac6db2904c76ee8031bd7359913fcf14c0608c0e73915bd52e8fbaa9", + "signature": "f50e467dac6db2904c76ee8031bd7359913fcf14c0608c0e73915bd52e8fbaa9", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/mongodb/mongoconnectionoptions.d.ts": { + "version": "503aca11c0619cd522e1a77979050c04d3ce9dd4d4d6ac6cd98b896776e53329", + "signature": "503aca11c0619cd522e1a77979050c04d3ce9dd4d4d6ac6cd98b896776e53329", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/cordova/cordovaconnectionoptions.d.ts": { + "version": "0e3aa780aee28b1eb2b2bba6c087e92d8a93eddf6aeee81e2810b6e40b0d6fa7", + "signature": "0e3aa780aee28b1eb2b2bba6c087e92d8a93eddf6aeee81e2810b6e40b0d6fa7", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/sqljs/sqljsconnectionoptions.d.ts": { + "version": "99f5e2875ce5aea1a61d0141504c56ccc31891d7a646d30cb73c8bbba382e9d2", + "signature": "99f5e2875ce5aea1a61d0141504c56ccc31891d7a646d30cb73c8bbba382e9d2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/react-native/reactnativeconnectionoptions.d.ts": { + "version": "3d4e239b17f413be13c0e53e557cf14183d422723edd401973971a375150c8c2", + "signature": "3d4e239b17f413be13c0e53e557cf14183d422723edd401973971a375150c8c2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/nativescript/nativescriptconnectionoptions.d.ts": { + "version": "6efaeec542f15491c801163235112984c76e2972b09a88ce07eb9b3a71db6270", + "signature": "6efaeec542f15491c801163235112984c76e2972b09a88ce07eb9b3a71db6270", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/expo/expoconnectionoptions.d.ts": { + "version": "d20af22b435bd3687cdecbd30178707cab80a8d9a46a303a6b128b855178326a", + "signature": "d20af22b435bd3687cdecbd30178707cab80a8d9a46a303a6b128b855178326a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectioncredentialsoptions.d.ts": { + "version": "b2efafe67c811e8e2d8d35f7597cf42bf2b3aea2b9541efbaadf082c3c5a9cf5", + "signature": "b2efafe67c811e8e2d8d35f7597cf42bf2b3aea2b9541efbaadf082c3c5a9cf5", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectionoptions.d.ts": { + "version": "f92663227ebd5f09d8df09dba53d1a72ab140b30bbce75bf97b5ab9afbb1d4de", + "signature": "f92663227ebd5f09d8df09dba53d1a72ab140b30bbce75bf97b5ab9afbb1d4de", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/sap/sapconnectioncredentialsoptions.d.ts": { + "version": "d51a2e050c8a131b13ec9330a0869e5ac75b9ac4ebde52d5f474e819510b5263", + "signature": "d51a2e050c8a131b13ec9330a0869e5ac75b9ac4ebde52d5f474e819510b5263", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/sap/sapconnectionoptions.d.ts": { + "version": "e8673f544fbdf3fcdefe68fb3f91321b2fc899437b4b2798232654a3a0f55dbf", + "signature": "e8673f544fbdf3fcdefe68fb3f91321b2fc899437b4b2798232654a3a0f55dbf", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/aurora-data-api-pg/auroradataapipostgresconnectionoptions.d.ts": { + "version": "b7c3f9434e2525cb6f9c5492e7905f23ded56a2c01bb0e454bf7d8367fdb814a", + "signature": "b7c3f9434e2525cb6f9c5492e7905f23ded56a2c01bb0e454bf7d8367fdb814a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/better-sqlite3/bettersqlite3connectionoptions.d.ts": { + "version": "e78aaddd9e825e66ee7e7a1cb1553a7ff0cfb4c23dab6cdf11af3a6823c9cbc0", + "signature": "e78aaddd9e825e66ee7e7a1cb1553a7ff0cfb4c23dab6cdf11af3a6823c9cbc0", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/connection/connectionoptions.d.ts": { + "version": "44a8f8a5e0d2be8722f3bfcc1a800a9af3a0dd3289ea2237f726dcb8c4905b33", + "signature": "44a8f8a5e0d2be8722f3bfcc1a800a9af3a0dd3289ea2237f726dcb8c4905b33", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/entity-manager/sqljsentitymanager.d.ts": { + "version": "66bf4f1c2021505f93b884d58bab7b99cac6fc580e615009020583fa51d79912", + "signature": "66bf4f1c2021505f93b884d58bab7b99cac6fc580e615009020583fa51d79912", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/relationloader.d.ts": { + "version": "6526c8e71000d8ede48d01458a1cfb4f74908d94787d67fc96b76ad6eb8c1008", + "signature": "6526c8e71000d8ede48d01458a1cfb4f74908d94787d67fc96b76ad6eb8c1008", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/query-builder/relationidloader.d.ts": { + "version": "24613a9b486960ea40f97c17a5178d2af64c808c36009be79c60d24f207b2029", + "signature": "24613a9b486960ea40f97c17a5178d2af64c808c36009be79c60d24f207b2029", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/connection/connection.d.ts": { + "version": "46b286b366507d1a270e00d8924910962124a93b2e27f8bf55a58cf4b4c717af", + "signature": "46b286b366507d1a270e00d8924910962124a93b2e27f8bf55a58cf4b4c717af", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/connection/connectionmanager.d.ts": { + "version": "a1f0b34cc15f90860a4e5fec964c38b8a31c9eb7856898f6d9cf30151c251f35", + "signature": "a1f0b34cc15f90860a4e5fec964c38b8a31c9eb7856898f6d9cf30151c251f35", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/namingstrategymetadataargs.d.ts": { + "version": "05d41b3e7789381ff4d7f06d8739bf54cc8e75b835cb28f22e59c1d212e48ff3", + "signature": "05d41b3e7789381ff4d7f06d8739bf54cc8e75b835cb28f22e59c1d212e48ff3", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/joincolumnmetadataargs.d.ts": { + "version": "ff8c485f6d39157c29e9196f99b0e69b13508b84bde6b51b01f8f3f7cb35f4b8", + "signature": "ff8c485f6d39157c29e9196f99b0e69b13508b84bde6b51b01f8f3f7cb35f4b8", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/jointablemetadataargs.d.ts": { + "version": "94169a40e1ac690c161c8e61b388d298ab202c9b95a885532d2e54686e24adb3", + "signature": "94169a40e1ac690c161c8e61b388d298ab202c9b95a885532d2e54686e24adb3", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/entitysubscribermetadataargs.d.ts": { + "version": "f63be9b46a22ee5894316cf71a4ba7581809dd98cf046109060a1214ee9e2977", + "signature": "f63be9b46a22ee5894316cf71a4ba7581809dd98cf046109060a1214ee9e2977", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/inheritancemetadataargs.d.ts": { + "version": "dd3cc41b5764c9435b7cae3cc830be4ee6071f41a607188e43aa1edeba4fbb3e", + "signature": "dd3cc41b5764c9435b7cae3cc830be4ee6071f41a607188e43aa1edeba4fbb3e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/discriminatorvaluemetadataargs.d.ts": { + "version": "b2dbb9485701a1d8250d9a35b74afd41b9a403c32484ed40ed195e8aa369ae70", + "signature": "b2dbb9485701a1d8250d9a35b74afd41b9a403c32484ed40ed195e8aa369ae70", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/entityrepositorymetadataargs.d.ts": { + "version": "5aa7565991c306061181bd0148c458bcce3472d912e2af6a98a0a54904cd84fc", + "signature": "5aa7565991c306061181bd0148c458bcce3472d912e2af6a98a0a54904cd84fc", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/transactionentitymetadataargs.d.ts": { + "version": "9629e70ae80485928a562adb978890c53c7be47c3b3624dbb82641e1da48fd2f", + "signature": "9629e70ae80485928a562adb978890c53c7be47c3b3624dbb82641e1da48fd2f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/transactionrepositorymetadataargs.d.ts": { + "version": "c33d86e1d4753d035c4ea8d0fdb2377043bc894e4227be3ceabc8e6a5411ab2e", + "signature": "c33d86e1d4753d035c4ea8d0fdb2377043bc894e4227be3ceabc8e6a5411ab2e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/generatedmetadataargs.d.ts": { + "version": "f9ec74382c95cbc85804daf0e9dabed56511a6dfb72f8a2868aa46a0b9b5eafc", + "signature": "f9ec74382c95cbc85804daf0e9dabed56511a6dfb72f8a2868aa46a0b9b5eafc", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/metadata-args/metadataargsstorage.d.ts": { + "version": "3cc8a65d7666320f6c22fe1a455c78eb3364156efed4fdc42590c4062b3b274c", + "signature": "3cc8a65d7666320f6c22fe1a455c78eb3364156efed4fdc42590c4062b3b274c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/container.d.ts": { + "version": "4dc6a62b37bbe4af66ef387690b6493c984eee96d0e5e9979f17ecdc098f520e", + "signature": "4dc6a62b37bbe4af66ef387690b6493c984eee96d0e5e9979f17ecdc098f520e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/error/queryfailederror.d.ts": { + "version": "b77df0ec30499a24b7f5146ca8a4423fd1cf10051b8a40649fd2b3454828034c", + "signature": "b77df0ec30499a24b7f5146ca8a4423fd1cf10051b8a40649fd2b3454828034c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/columnwithlengthoptions.d.ts": { + "version": "5cd5a999e218c635ea6c3e0d64da34a0f112757e793f29bc097fd18b5267f427", + "signature": "5cd5a999e218c635ea6c3e0d64da34a0f112757e793f29bc097fd18b5267f427", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/columnnumericoptions.d.ts": { + "version": "cc14b99b4e1bbedab2e3fbf058ed95231d8ced691f0645f2a206c32464f1bd7b", + "signature": "cc14b99b4e1bbedab2e3fbf058ed95231d8ced691f0645f2a206c32464f1bd7b", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/columnenumoptions.d.ts": { + "version": "e6db934da4b03c1f4f1da6f4165a981ec004e9e7d956c585775326b392d4d886", + "signature": "e6db934da4b03c1f4f1da6f4165a981ec004e9e7d956c585775326b392d4d886", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/columnembeddedoptions.d.ts": { + "version": "b6fc349d28704d5698d749902fe3c4da99468036f995c08d0f88df70be84b304", + "signature": "b6fc349d28704d5698d749902fe3c4da99468036f995c08d0f88df70be84b304", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/columnhstoreoptions.d.ts": { + "version": "6ecb85c8cbb289fe72e1d302684e659cc01ef76ae8e0ad01e8b2203706af1d56", + "signature": "6ecb85c8cbb289fe72e1d302684e659cc01ef76ae8e0ad01e8b2203706af1d56", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/columnwithwidthoptions.d.ts": { + "version": "35ab64ba795a16668247552da22f2efe1c5fbc5bc775392c534747be7f91df04", + "signature": "35ab64ba795a16668247552da22f2efe1c5fbc5bc775392c534747be7f91df04", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/column.d.ts": { + "version": "0fefee52e503cba24b1ed714f9a9fb4efb95e6ae92451a5f38a126f0555f4211", + "signature": "0fefee52e503cba24b1ed714f9a9fb4efb95e6ae92451a5f38a126f0555f4211", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/createdatecolumn.d.ts": { + "version": "38b57fe5488d0f13d344dcb414e2d656159b4fb750176dbb1cc968014ba05d7a", + "signature": "38b57fe5488d0f13d344dcb414e2d656159b4fb750176dbb1cc968014ba05d7a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/deletedatecolumn.d.ts": { + "version": "25f9195f774ab2f4c3edf99c17510a93f901247debc4b339146f284142d8ab91", + "signature": "25f9195f774ab2f4c3edf99c17510a93f901247debc4b339146f284142d8ab91", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnnumericoptions.d.ts": { + "version": "08521fb4e5e7f3c47bbe7dea62b2696422f816ca1b7f90bf55a3d6e9d9d42047", + "signature": "08521fb4e5e7f3c47bbe7dea62b2696422f816ca1b7f90bf55a3d6e9d9d42047", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnuuidoptions.d.ts": { + "version": "dd661e118e549293177ef4531d54328624229e7a5aefa8f0c6194e033db3bd19", + "signature": "dd661e118e549293177ef4531d54328624229e7a5aefa8f0c6194e033db3bd19", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/primarygeneratedcolumn.d.ts": { + "version": "11e21e674001320d403c1d7f33154b6391f61ab5ea3667cd942ef6c37f39da81", + "signature": "11e21e674001320d403c1d7f33154b6391f61ab5ea3667cd942ef6c37f39da81", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/primarycolumn.d.ts": { + "version": "fa903be88615982fb71ba7621a294095ef27ccce4c9496109a44c0c187cccaf1", + "signature": "fa903be88615982fb71ba7621a294095ef27ccce4c9496109a44c0c187cccaf1", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/updatedatecolumn.d.ts": { + "version": "18e4a3732858ec92577862fd2d2a68798578f9ae1d0933f3efafcde05850e0bb", + "signature": "18e4a3732858ec92577862fd2d2a68798578f9ae1d0933f3efafcde05850e0bb", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/versioncolumn.d.ts": { + "version": "09c6d666af0e746ace0267b5ef7f9aea0bc99842faf5138e0d1293a9efbc5378", + "signature": "09c6d666af0e746ace0267b5ef7f9aea0bc99842faf5138e0d1293a9efbc5378", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/viewcolumnoptions.d.ts": { + "version": "0dcd8a4a8314acf13bfb6074f9a7ccafef02ff93294c0c033643f99687cd121a", + "signature": "0dcd8a4a8314acf13bfb6074f9a7ccafef02ff93294c0c033643f99687cd121a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/viewcolumn.d.ts": { + "version": "6392ce794eef6f9b57818264bb0eeb24a46cf923f7695a957c15d3d087fbb6cc", + "signature": "6392ce794eef6f9b57818264bb0eeb24a46cf923f7695a957c15d3d087fbb6cc", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/columns/objectidcolumn.d.ts": { + "version": "b29f1c2aa76833193b06212fb4668a3813da54e1480a48da6835c870f0acc213", + "signature": "b29f1c2aa76833193b06212fb4668a3813da54e1480a48da6835c870f0acc213", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/listeners/afterinsert.d.ts": { + "version": "93d20368cdb5fff7f7398bfc9b2b474b2a2d5867277a0631a33b7db7fd53d5b4", + "signature": "93d20368cdb5fff7f7398bfc9b2b474b2a2d5867277a0631a33b7db7fd53d5b4", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/listeners/afterload.d.ts": { + "version": "b1e69b9834104482fabf7fba40e86a282ee10e0600ffd75123622f4610b0ef9e", + "signature": "b1e69b9834104482fabf7fba40e86a282ee10e0600ffd75123622f4610b0ef9e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/listeners/afterremove.d.ts": { + "version": "ad5bb6c450cb574289db945ff82be103ed5d0ad8ee8c76164cee7999c695ae01", + "signature": "ad5bb6c450cb574289db945ff82be103ed5d0ad8ee8c76164cee7999c695ae01", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/listeners/afterupdate.d.ts": { + "version": "e9aa5ccb42e118f5418721d2ac8c0ebdebeb9502007db9b4c1b7c9b8d493013e", + "signature": "e9aa5ccb42e118f5418721d2ac8c0ebdebeb9502007db9b4c1b7c9b8d493013e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/listeners/beforeinsert.d.ts": { + "version": "d300868212b3cc4d13228f5dc2e9880d5959dc742c0c55be2fc43bcda8504c8f", + "signature": "d300868212b3cc4d13228f5dc2e9880d5959dc742c0c55be2fc43bcda8504c8f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/listeners/beforeremove.d.ts": { + "version": "0c55daad827669843bd2401f1ddd163b74d9f922680b08ae6e162ceb6c11b078", + "signature": "0c55daad827669843bd2401f1ddd163b74d9f922680b08ae6e162ceb6c11b078", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/listeners/beforeupdate.d.ts": { + "version": "5055e86e689cfe39104ab71298757e5aac839c2ea9d1f12299e76fa79303d47d", + "signature": "5055e86e689cfe39104ab71298757e5aac839c2ea9d1f12299e76fa79303d47d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/listeners/eventsubscriber.d.ts": { + "version": "42266c387025558423c19d624f671352aac3e449c23906cb636f9ae317b72d7e", + "signature": "42266c387025558423c19d624f671352aac3e449c23906cb636f9ae317b72d7e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/indexoptions.d.ts": { + "version": "365647ed7b113e727b2ced995e856678d8276f20adae6457ab50a8fe806b06b2", + "signature": "365647ed7b113e727b2ced995e856678d8276f20adae6457ab50a8fe806b06b2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/jointableoptions.d.ts": { + "version": "d8b8f783622d25039d66c910e13dc683914f384dcff6a5e959c41ee2be6085bc", + "signature": "d8b8f783622d25039d66c910e13dc683914f384dcff6a5e959c41ee2be6085bc", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/entityoptions.d.ts": { + "version": "af1af59e70d7cd03669420193574e8b8d2667213e1c874f17fcbf78e3e96d185", + "signature": "af1af59e70d7cd03669420193574e8b8d2667213e1c874f17fcbf78e3e96d185", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/relations/joincolumn.d.ts": { + "version": "55160bd492e46f5fcb305dcd26405ea0affa861fc3c0db96c5bc955e41c4b13d", + "signature": "55160bd492e46f5fcb305dcd26405ea0affa861fc3c0db96c5bc955e41c4b13d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/relations/jointable.d.ts": { + "version": "f7d76c6ae021b7325eed4ae1c2e4ef682a9ed7357db25c3eeaf0b109eb6d7c1f", + "signature": "f7d76c6ae021b7325eed4ae1c2e4ef682a9ed7357db25c3eeaf0b109eb6d7c1f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/relations/manytomany.d.ts": { + "version": "fcbb33d4880cc5690aa0654b669ed1c91798be55fd362e29b73d52df8f10f7f3", + "signature": "fcbb33d4880cc5690aa0654b669ed1c91798be55fd362e29b73d52df8f10f7f3", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/relations/manytoone.d.ts": { + "version": "b816a31022080b9f8a82a5bcb5a1741057caae6c6a3ca1268e4b9deae7886ecb", + "signature": "b816a31022080b9f8a82a5bcb5a1741057caae6c6a3ca1268e4b9deae7886ecb", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/relations/onetomany.d.ts": { + "version": "9f41961a10c1afdf0e655f0e913083dfceb7cd083108b21ba3b6b9d427e5a783", + "signature": "9f41961a10c1afdf0e655f0e913083dfceb7cd083108b21ba3b6b9d427e5a783", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/relations/onetoone.d.ts": { + "version": "414384be54bb1f80dd5469acaec5a7b6387f149e40da617065b9c87a609e045a", + "signature": "414384be54bb1f80dd5469acaec5a7b6387f149e40da617065b9c87a609e045a", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/relations/relationcount.d.ts": { + "version": "56943d425bdfff3cc5182eca50942e328add0cb718219fca179a8c547458380b", + "signature": "56943d425bdfff3cc5182eca50942e328add0cb718219fca179a8c547458380b", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/relations/relationid.d.ts": { + "version": "683936ba33231260b16899afd87668171698f42683c3cd1413f5847c785f332f", + "signature": "683936ba33231260b16899afd87668171698f42683c3cd1413f5847c785f332f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/entity/entity.d.ts": { + "version": "abf8381c92ecec6fd58bc2530aa20b270f2179637aea1adff7c6037de55ca0c9", + "signature": "abf8381c92ecec6fd58bc2530aa20b270f2179637aea1adff7c6037de55ca0c9", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/entity/childentity.d.ts": { + "version": "c30ca82112586c5dae7477d7e82cc91a7e0d1e658c581f9ec3df07c4485bba84", + "signature": "c30ca82112586c5dae7477d7e82cc91a7e0d1e658c581f9ec3df07c4485bba84", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/entity/tableinheritance.d.ts": { + "version": "d980a3dc415fc1e3195f4857774631b17e385ba8cbe66dd1b0e4ee15e4e87f63", + "signature": "d980a3dc415fc1e3195f4857774631b17e385ba8cbe66dd1b0e4ee15e4e87f63", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/viewentityoptions.d.ts": { + "version": "2a1718499352fe9fca401d6f99bf7bac822daa7eea58bd68286dedcfaabc80f8", + "signature": "2a1718499352fe9fca401d6f99bf7bac822daa7eea58bd68286dedcfaabc80f8", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/entity-view/viewentity.d.ts": { + "version": "561067dc7b6b7635277d3cad0a0e11f698d377063dd2c15dfac43ef78847eef4", + "signature": "561067dc7b6b7635277d3cad0a0e11f698d377063dd2c15dfac43ef78847eef4", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/options/transactionoptions.d.ts": { + "version": "a236ad8ee2cc7e31b0436f3502750adadcbc3342d5cccd6b4e6b2ae5c5b20fc6", + "signature": "a236ad8ee2cc7e31b0436f3502750adadcbc3342d5cccd6b4e6b2ae5c5b20fc6", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/transaction/transaction.d.ts": { + "version": "58f13f29f1a503ae3ef37c1cf7962ae62efb2fa4a3829bad888393540c7d22b7", + "signature": "58f13f29f1a503ae3ef37c1cf7962ae62efb2fa4a3829bad888393540c7d22b7", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/transaction/transactionmanager.d.ts": { + "version": "fc9b2868b6707a9fe0329b1fc7448644faef6412d042323938616b33e3f10591", + "signature": "fc9b2868b6707a9fe0329b1fc7448644faef6412d042323938616b33e3f10591", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/transaction/transactionrepository.d.ts": { + "version": "125c3b5ad822db90ecd9215f1b64cf8e365afda31ecef9a7141300e48f183e0c", + "signature": "125c3b5ad822db90ecd9215f1b64cf8e365afda31ecef9a7141300e48f183e0c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/tree/treelevelcolumn.d.ts": { + "version": "438247e782a8a9b9abdce618e963667cf95157cc6d3f5194a452d3c7d9e9655c", + "signature": "438247e782a8a9b9abdce618e963667cf95157cc6d3f5194a452d3c7d9e9655c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/tree/treeparent.d.ts": { + "version": "b34c09021af6fad85065ba08d15dc07b28d96508687f40801afc70aee5572fd5", + "signature": "b34c09021af6fad85065ba08d15dc07b28d96508687f40801afc70aee5572fd5", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/tree/treechildren.d.ts": { + "version": "f1e8eca509487806fdf979349cfcdb6ffdeb20f11b7e95666c4309d12dcd9ba6", + "signature": "f1e8eca509487806fdf979349cfcdb6ffdeb20f11b7e95666c4309d12dcd9ba6", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/tree/tree.d.ts": { + "version": "7986d52ba41a8033304c39c398ed8c00592b33f1dd4821d6969bbdc13ecbe293", + "signature": "7986d52ba41a8033304c39c398ed8c00592b33f1dd4821d6969bbdc13ecbe293", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/index.d.ts": { + "version": "f91667b00e86eddd4dd30f970571cfb8dfcc8e03b57c1f72fdf484dd5e21cc06", + "signature": "f91667b00e86eddd4dd30f970571cfb8dfcc8e03b57c1f72fdf484dd5e21cc06", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/unique.d.ts": { + "version": "596366db50dfeb7ec8a1da8650030809c2938c8efef5cf1f2b897443ecdbe71c", + "signature": "596366db50dfeb7ec8a1da8650030809c2938c8efef5cf1f2b897443ecdbe71c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/check.d.ts": { + "version": "85e2808cc73ab3ac07774802b34a6ff0d7e1e46c26de7bc2dbe08e04b3340edb", + "signature": "85e2808cc73ab3ac07774802b34a6ff0d7e1e46c26de7bc2dbe08e04b3340edb", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/exclusion.d.ts": { + "version": "f766e5cdea938e0c9d214533fd4501ab0ee23ab4efca9edba334fa02d2869f11", + "signature": "f766e5cdea938e0c9d214533fd4501ab0ee23ab4efca9edba334fa02d2869f11", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/generated.d.ts": { + "version": "eb380820a3a1feda3a182a3d078da18e0d5b7da08ae531ce11133a84b479678c", + "signature": "eb380820a3a1feda3a182a3d078da18e0d5b7da08ae531ce11133a84b479678c", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/decorator/entityrepository.d.ts": { + "version": "17250426320eef8842ec175088abe01460312cacf97c8dabca7cb1c919be1e1b", + "signature": "17250426320eef8842ec175088abe01460312cacf97c8dabca7cb1c919be1e1b", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/any.d.ts": { + "version": "ddaa88853f1ee35622267a9d95450cd00c80d6d920ff7acb438c5a6d265ba549", + "signature": "ddaa88853f1ee35622267a9d95450cd00c80d6d920ff7acb438c5a6d265ba549", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/between.d.ts": { + "version": "f780879a2ca63dbb59b36f772bc28dccd2840f1377d8d632e8c978b99c26a45f", + "signature": "f780879a2ca63dbb59b36f772bc28dccd2840f1377d8d632e8c978b99c26a45f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/equal.d.ts": { + "version": "2c0639b28386cb90bc9f5ffa210c55beaef22b196096820cc11d971f33dc6ca9", + "signature": "2c0639b28386cb90bc9f5ffa210c55beaef22b196096820cc11d971f33dc6ca9", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/in.d.ts": { + "version": "1f6b42497e897d0e703464f75d264e5b7efbc54e0060e48811630e8e34c4bf78", + "signature": "1f6b42497e897d0e703464f75d264e5b7efbc54e0060e48811630e8e34c4bf78", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/isnull.d.ts": { + "version": "c90f8038c75600e55db93d97bab73c0ab8fb618d75392d1d1ad32e2f6e9c7908", + "signature": "c90f8038c75600e55db93d97bab73c0ab8fb618d75392d1d1ad32e2f6e9c7908", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/lessthan.d.ts": { + "version": "ca083f3bf68e813b5bded56ecbf177636aa75833eb86c7b40e3d75b8ce4c2f78", + "signature": "ca083f3bf68e813b5bded56ecbf177636aa75833eb86c7b40e3d75b8ce4c2f78", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/lessthanorequal.d.ts": { + "version": "3c8bf00283ef468da8389119d3f5662c81106e302c8810f40ea86b1018df647e", + "signature": "3c8bf00283ef468da8389119d3f5662c81106e302c8810f40ea86b1018df647e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/ilike.d.ts": { + "version": "67b248e4bac845c5139898b44cbd3e1213674bcc9831039701b5f0f957243a24", + "signature": "67b248e4bac845c5139898b44cbd3e1213674bcc9831039701b5f0f957243a24", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/like.d.ts": { + "version": "4eafa9b29603f99f816a686872bd2c7dec00d0250eb3b1c0c9987fc12c6b999f", + "signature": "4eafa9b29603f99f816a686872bd2c7dec00d0250eb3b1c0c9987fc12c6b999f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/morethan.d.ts": { + "version": "9f5f256c7b5cc4a98ef557ea9720f81e96319d569f731c897ddb4514936242b4", + "signature": "9f5f256c7b5cc4a98ef557ea9720f81e96319d569f731c897ddb4514936242b4", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/morethanorequal.d.ts": { + "version": "a20ded6c920f6e566537e93d69cbad79bc57d7e3ce85686003078cf88c1c9cfc", + "signature": "a20ded6c920f6e566537e93d69cbad79bc57d7e3ce85686003078cf88c1c9cfc", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/not.d.ts": { + "version": "b90ba7f5713afd494546fb053186dc077993b8b56ba46c08007b0e67e9f7212d", + "signature": "b90ba7f5713afd494546fb053186dc077993b8b56ba46c08007b0e67e9f7212d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/operator/raw.d.ts": { + "version": "45bf5ca176cbdba570fdb372fd44343743a263f5fee80ce64876f9dcfc8eb374", + "signature": "45bf5ca176cbdba570fdb372fd44343743a263f5fee80ce64876f9dcfc8eb374", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/find-options/findoptionsutils.d.ts": { + "version": "408bf1d233f81244fc0f626a4d7de48fee4f7f579f42e90a5f20a4993e756a6f", + "signature": "408bf1d233f81244fc0f626a4d7de48fee4f7f579f42e90a5f20a4993e756a6f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/logger/advancedconsolelogger.d.ts": { + "version": "9149c2cc9d0075acd3a792d68b9b3ea37f3a9440a195e140d8e705186ba31f0f", + "signature": "9149c2cc9d0075acd3a792d68b9b3ea37f3a9440a195e140d8e705186ba31f0f", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/logger/simpleconsolelogger.d.ts": { + "version": "cc7ed2f02c648a5213daa6d3aad35d307b5e7b2ca6249b5e5cadbe3794371954", + "signature": "cc7ed2f02c648a5213daa6d3aad35d307b5e7b2ca6249b5e5cadbe3794371954", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/logger/filelogger.d.ts": { + "version": "47dd43cd3c71fe8aae614394785cae9f19b29696e3cd5ef5ee72d579558f9fd3", + "signature": "47dd43cd3c71fe8aae614394785cae9f19b29696e3cd5ef5ee72d579558f9fd3", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/repository/abstractrepository.d.ts": { + "version": "c9d0d6a735806cf22b708550e89d5315e81367e675e6c89fefe831857bb885a2", + "signature": "c9d0d6a735806cf22b708550e89d5315e81367e675e6c89fefe831857bb885a2", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/repository/baseentity.d.ts": { + "version": "f626de98fb8781df6e273a24fe56261791a4f6c12edead9890c768cb0bfa30df", + "signature": "f626de98fb8781df6e273a24fe56261791a4f6c12edead9890c768cb0bfa30df", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/driver/sqlserver/mssqlparameter.d.ts": { + "version": "b250d34cdebe2744cf32c7eecfe58c48496f1650fe7e944eb745a80b1347377e", + "signature": "b250d34cdebe2744cf32c7eecfe58c48496f1650fe7e944eb745a80b1347377e", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/connection/connectionoptionsreader.d.ts": { + "version": "599247bc6d7918bf1f03eacec2e84956435b9c35b427e22d489663f95f4d4279", + "signature": "599247bc6d7918bf1f03eacec2e84956435b9c35b427e22d489663f95f4d4279", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/migration/migrationexecutor.d.ts": { + "version": "3adea9938c543eb49bf983cb2ff26192802d04e2a73e2c01110c813fc8c03146", + "signature": "3adea9938c543eb49bf983cb2ff26192802d04e2a73e2c01110c813fc8c03146", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/naming-strategy/defaultnamingstrategy.d.ts": { + "version": "f5839b540a4dc9aedf088407f84786ed022f89f1e06bca967a88dc23fea1d46d", + "signature": "f5839b540a4dc9aedf088407f84786ed022f89f1e06bca967a88dc23fea1d46d", + "affectsGlobalScope": false + }, + "../node_modules/typeorm/index.d.ts": { + "version": "65916fb178938c9fb2c0588cf5447f5b5de992d50d0e308d6b2169a027fa9dd5", + "signature": "65916fb178938c9fb2c0588cf5447f5b5de992d50d0e308d6b2169a027fa9dd5", + "affectsGlobalScope": false + }, + "../node_modules/@types/jsonwebtoken/index.d.ts": { + "version": "f67c920eba6ab8e4558cb9ab661d900188f101c5657e19b1e15829a1d491d46e", + "signature": "f67c920eba6ab8e4558cb9ab661d900188f101c5657e19b1e15829a1d491d46e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts": { + "version": "fc0140cf41d169b3b77e09831c9d2eed1cdb131aa34f4fa27e4c01896ec97ad6", + "signature": "fc0140cf41d169b3b77e09831c9d2eed1cdb131aa34f4fa27e4c01896ec97ad6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/jwt/dist/interfaces/index.d.ts": { + "version": "7c14e702387296711c1a829bc95052ff02f533d4aa27d53cc0186c795094a3a9", + "signature": "7c14e702387296711c1a829bc95052ff02f533d4aa27d53cc0186c795094a3a9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/jwt/dist/jwt.module.d.ts": { + "version": "579f8828da42ae02db6915a0223d23b0da07157ff484fecdbf8a96fffa0fa4df", + "signature": "579f8828da42ae02db6915a0223d23b0da07157ff484fecdbf8a96fffa0fa4df", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/jwt/dist/jwt.service.d.ts": { + "version": "d1e16a1778a336ae49607ca0becd8688e74a020bea949047dcfcbb1bd2dc0f5a", + "signature": "d1e16a1778a336ae49607ca0becd8688e74a020bea949047dcfcbb1bd2dc0f5a", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/jwt/dist/index.d.ts": { + "version": "a13aac535101a942283e3d00bce50f483bfa9bed6e1f8dfda33a3bb072498776", + "signature": "a13aac535101a942283e3d00bce50f483bfa9bed6e1f8dfda33a3bb072498776", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/jwt/index.d.ts": { + "version": "8f1241f5d9f0d3d72117768b3c974e462840fbd85026fb66685078945404cf2f", + "signature": "8f1241f5d9f0d3d72117768b3c974e462840fbd85026fb66685078945404cf2f", + "affectsGlobalScope": false + }, + "../src/app/shared/model/config/config.model.ts": { + "version": "2c1a1439fab5e0774c85437e49e8e4b5693fb36cd60a9a2065e84aeaca962197", + "signature": "b82947ea29f379c69a6329d31399d1b64d42adb14bef0a2a7cbb754b2a057947", + "affectsGlobalScope": false + }, + "../src/app/shared/logger/winston.logger.ts": { + "version": "ecbac0e629d5c4c068672e792aa2b8c6a3969607d7b81a90db7e33e9232acc7e", + "signature": "4083263b88754273b7b37bd70470e15724e102049d534c2d51889c49a830429e", + "affectsGlobalScope": false + }, + "../src/app/shared/exceptions/business-logic.exception.ts": { + "version": "be96063d7d48e4a6311f84f949d438369030cd53f78d01e30b92f8bbc953d6a7", + "signature": "54bccac9c0aaa6d159a3270fa9b59356464ed78bce30c025132cd3e28ad0de36", + "affectsGlobalScope": false + }, + "../node_modules/@types/range-parser/index.d.ts": { + "version": "4e88b833be14c7f384e0dcd57bb30acd799e8e34d212635d693e41a75a71164b", + "signature": "4e88b833be14c7f384e0dcd57bb30acd799e8e34d212635d693e41a75a71164b", + "affectsGlobalScope": false + }, + "../node_modules/@types/qs/index.d.ts": { + "version": "c236451df6139a965bb9b8fba15a43a8bebf4400ca589998e2bdc5e1291fa0f9", + "signature": "c236451df6139a965bb9b8fba15a43a8bebf4400ca589998e2bdc5e1291fa0f9", + "affectsGlobalScope": false + }, + "../node_modules/@types/express-serve-static-core/index.d.ts": { + "version": "ae8d1b919cc922283c52b0c5a3404ef4ffd9eeda1202254b6295e4a87acb8fee", + "signature": "ae8d1b919cc922283c52b0c5a3404ef4ffd9eeda1202254b6295e4a87acb8fee", + "affectsGlobalScope": true + }, + "../node_modules/@types/mime/index.d.ts": { + "version": "be27a64e821a3e5af838650e4aa25805c60f057d0c37a9762c378d19d364b3e6", + "signature": "be27a64e821a3e5af838650e4aa25805c60f057d0c37a9762c378d19d364b3e6", + "affectsGlobalScope": false + }, + "../node_modules/@types/serve-static/index.d.ts": { + "version": "3b02517f9be71f255eadab9892406055d069167891f1e1ea16c96c4ff1ddda01", + "signature": "3b02517f9be71f255eadab9892406055d069167891f1e1ea16c96c4ff1ddda01", + "affectsGlobalScope": false + }, + "../node_modules/@types/connect/index.d.ts": { + "version": "81c14b89fa607b86dd726e2e3e91360cf8155ce97468404324d404a5bd65b2eb", + "signature": "81c14b89fa607b86dd726e2e3e91360cf8155ce97468404324d404a5bd65b2eb", + "affectsGlobalScope": false + }, + "../node_modules/@types/body-parser/index.d.ts": { + "version": "ebddbd167c2fabd0151f50e5df94ca6d845149c47521280d8867afe3429dd078", + "signature": "ebddbd167c2fabd0151f50e5df94ca6d845149c47521280d8867afe3429dd078", + "affectsGlobalScope": false + }, + "../node_modules/@types/express/index.d.ts": { + "version": "924732dfbdfd120ee07cf733c7c65018f24ce9ddf06ed9ccf3cad8fdc2e33585", + "signature": "924732dfbdfd120ee07cf733c7c65018f24ce9ddf06ed9ccf3cad8fdc2e33585", + "affectsGlobalScope": false + }, + "../src/app/shared/filters/business-logic.filter.ts": { + "version": "46205373405f83e39e0905af9dee412a9c6ed303f9e7a3b5f066c132010d616a", + "signature": "7d2068ab10625d55ee2d1bdb4e3442a0169b12572157f1df76ef4138d4caa382", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts": { + "version": "e15db0d01139d39213a40639352debd92786f311e0421c21ac97c2ca4003a299", + "signature": "e15db0d01139d39213a40639352debd92786f311e0421c21ac97c2ca4003a299", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/dist/common/typeorm.decorators.d.ts": { + "version": "cd2afab7b5206a624ef3a603568ce42a7c65e7e4958f1c9518b70580523db653", + "signature": "cd2afab7b5206a624ef3a603568ce42a7c65e7e4958f1c9518b70580523db653", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/dist/common/typeorm.utils.d.ts": { + "version": "2682ba5d13c2358a76e5d2a0920503226c720f502d6c5b12dde3b5bcdf7cb53c", + "signature": "2682ba5d13c2358a76e5d2a0920503226c720f502d6c5b12dde3b5bcdf7cb53c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/dist/common/index.d.ts": { + "version": "9a7638d62db8cfa1466093d7d413fdf85c5e4a7c663ed76f2bfc8739c8e01505", + "signature": "9a7638d62db8cfa1466093d7d413fdf85c5e4a7c663ed76f2bfc8739c8e01505", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/dist/interfaces/typeorm-options.interface.d.ts": { + "version": "67c2337be292ac0b1efd7795b957c1c25cd074ddfe814c36c650ffdaf267750f", + "signature": "67c2337be292ac0b1efd7795b957c1c25cd074ddfe814c36c650ffdaf267750f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/dist/interfaces/index.d.ts": { + "version": "c338859b98f8a11f80e3e47e33767299e7a4facdf0870c01c8694fa8fa048d16", + "signature": "c338859b98f8a11f80e3e47e33767299e7a4facdf0870c01c8694fa8fa048d16", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/dist/typeorm.module.d.ts": { + "version": "506ddc141d91c4155d39ce3125a92b4636ed10db070c0cfdac7e54376178c30c", + "signature": "506ddc141d91c4155d39ce3125a92b4636ed10db070c0cfdac7e54376178c30c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/dist/index.d.ts": { + "version": "b113e9770d5be136c5e2add9e6cdf40d85051762ff2391f71d552975e66b1500", + "signature": "b113e9770d5be136c5e2add9e6cdf40d85051762ff2391f71d552975e66b1500", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/typeorm/index.d.ts": { + "version": "8f1241f5d9f0d3d72117768b3c974e462840fbd85026fb66685078945404cf2f", + "signature": "8f1241f5d9f0d3d72117768b3c974e462840fbd85026fb66685078945404cf2f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/dist/abstract.strategy.d.ts": { + "version": "ba63131c5e91f797736444933af16ffa42f9f8c150d859ec65f568f037a416ea", + "signature": "ba63131c5e91f797736444933af16ffa42f9f8c150d859ec65f568f037a416ea", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts": { + "version": "142e2e1abd8603dfdeaa1c88d73003a7912aa949b3a19234fa91f729ebfa2fcc", + "signature": "142e2e1abd8603dfdeaa1c88d73003a7912aa949b3a19234fa91f729ebfa2fcc", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/dist/interfaces/type.interface.d.ts": { + "version": "340a45cd77b41d8a6deda248167fa23d3dc67ec798d411bd282f7b3d555b1695", + "signature": "340a45cd77b41d8a6deda248167fa23d3dc67ec798d411bd282f7b3d555b1695", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts": { + "version": "0e9aa853b5eb2ca09e0e3e3eb94cbd1d5fb3d682ab69817d4d11fe225953fc57", + "signature": "0e9aa853b5eb2ca09e0e3e3eb94cbd1d5fb3d682ab69817d4d11fe225953fc57", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/dist/auth.guard.d.ts": { + "version": "ffa1885ad546522fa1046644db93b17de7a29191a547edeeac57391909a73846", + "signature": "ffa1885ad546522fa1046644db93b17de7a29191a547edeeac57391909a73846", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/dist/passport.module.d.ts": { + "version": "793c353144f16601da994fa4e62c09b7525836ce999c44f69c28929072ca206a", + "signature": "793c353144f16601da994fa4e62c09b7525836ce999c44f69c28929072ca206a", + "affectsGlobalScope": false + }, + "../node_modules/@types/passport/index.d.ts": { + "version": "351944a236f430f5f07fc74c7aeeebf425047f7fc54157c52eaf0e139b29d7b1", + "signature": "351944a236f430f5f07fc74c7aeeebf425047f7fc54157c52eaf0e139b29d7b1", + "affectsGlobalScope": true + }, + "../node_modules/@nestjs/passport/dist/passport/passport.serializer.d.ts": { + "version": "599ac4a84b7aa6a298731179ec1663a623ff8ac324cdc1dabb9c73c1259dc854", + "signature": "599ac4a84b7aa6a298731179ec1663a623ff8ac324cdc1dabb9c73c1259dc854", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/dist/passport/passport.strategy.d.ts": { + "version": "100509817f7a12b93f2ca4e07c1e3fe7f73ce2cbe2d69b609df2bf35fbbe7cf8", + "signature": "100509817f7a12b93f2ca4e07c1e3fe7f73ce2cbe2d69b609df2bf35fbbe7cf8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/dist/index.d.ts": { + "version": "585bc61f439c027640754dd26e480afa202f33e51db41ee283311a59c12c62e7", + "signature": "585bc61f439c027640754dd26e480afa202f33e51db41ee283311a59c12c62e7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/passport/index.d.ts": { + "version": "8f1241f5d9f0d3d72117768b3c974e462840fbd85026fb66685078945404cf2f", + "signature": "8f1241f5d9f0d3d72117768b3c974e462840fbd85026fb66685078945404cf2f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-basic.decorator.d.ts": { + "version": "6ecc423e71318bafbd230e6059e082c377170dfc7e02fccfa600586f8604d452", + "signature": "6ecc423e71318bafbd230e6059e082c377170dfc7e02fccfa600586f8604d452", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-bearer.decorator.d.ts": { + "version": "772f9bdd2bf50c9c01b0506001545e9b878faa7394ad6e7d90b49b179a024584", + "signature": "772f9bdd2bf50c9c01b0506001545e9b878faa7394ad6e7d90b49b179a024584", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts": { + "version": "7042fea4affa85bd05c1c7c9a2e42773738e3aced630b1c7e8e6b48e90a48069", + "signature": "7042fea4affa85bd05c1c7c9a2e42773738e3aced630b1c7e8e6b48e90a48069", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts": { + "version": "02dafa194c95b7c0293059512b8ea3bd95402c6e4bc8331dab7e92e842260c56", + "signature": "02dafa194c95b7c0293059512b8ea3bd95402c6e4bc8331dab7e92e842260c56", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-body.decorator.d.ts": { + "version": "10e0bec39a58664907f32d33b825155a4efea3e74e62bd57206bce35486891d6", + "signature": "10e0bec39a58664907f32d33b825155a4efea3e74e62bd57206bce35486891d6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-consumes.decorator.d.ts": { + "version": "cd1ccdd9fd7980d43dfede5d42ee3d18064baed98b136089cf7c8221d562f058", + "signature": "cd1ccdd9fd7980d43dfede5d42ee3d18064baed98b136089cf7c8221d562f058", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-cookie.decorator.d.ts": { + "version": "d60f9a4fd1e734e7b79517f02622426ea1000deb7d6549dfdece043353691a4e", + "signature": "d60f9a4fd1e734e7b79517f02622426ea1000deb7d6549dfdece043353691a4e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-exclude-endpoint.decorator.d.ts": { + "version": "403d28b5e5f8fcff795ac038902033ec5890143e950af45bd91a3ed231e8b59c", + "signature": "403d28b5e5f8fcff795ac038902033ec5890143e950af45bd91a3ed231e8b59c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-extra-models.decorator.d.ts": { + "version": "999fa84c5df2d19909d68a43ce89a5dddfb30e526f7796ea995809a09f53e393", + "signature": "999fa84c5df2d19909d68a43ce89a5dddfb30e526f7796ea995809a09f53e393", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-header.decorator.d.ts": { + "version": "bfeb476eb0049185cb94c2bfcadb3ce1190554bbcf170d2bf7c68ed9bb00458e", + "signature": "bfeb476eb0049185cb94c2bfcadb3ce1190554bbcf170d2bf7c68ed9bb00458e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-hide-property.decorator.d.ts": { + "version": "ae23a65a2b664ffe979b0a2a98842e10bdf3af67a356f14bbc9d77eb3ab13585", + "signature": "ae23a65a2b664ffe979b0a2a98842e10bdf3af67a356f14bbc9d77eb3ab13585", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-oauth2.decorator.d.ts": { + "version": "eccf6ad2a8624329653896e8dbd03f30756cbd902a81b5d3942d6cf0e1a21575", + "signature": "eccf6ad2a8624329653896e8dbd03f30756cbd902a81b5d3942d6cf0e1a21575", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-operation.decorator.d.ts": { + "version": "334ed2e25a7ebc8db8aac231bab5a5b57a1b6f8063186a92314f4ddf3d74d4e2", + "signature": "334ed2e25a7ebc8db8aac231bab5a5b57a1b6f8063186a92314f4ddf3d74d4e2", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-param.decorator.d.ts": { + "version": "5af015a9834e0f5cf56a9089ddf0ca87a56bd3f8ad0eb79c8cc95968aa867923", + "signature": "5af015a9834e0f5cf56a9089ddf0ca87a56bd3f8ad0eb79c8cc95968aa867923", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-produces.decorator.d.ts": { + "version": "62463aa3d299ae0cdc5473d2ac32213a05753c3adce87a8801c6d2b114a64116", + "signature": "62463aa3d299ae0cdc5473d2ac32213a05753c3adce87a8801c6d2b114a64116", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/interfaces/schema-object-metadata.interface.d.ts": { + "version": "c9c2eabaad71c534d7de16385977f95184fdf3ddd0339dadbd5d599488d94f90", + "signature": "c9c2eabaad71c534d7de16385977f95184fdf3ddd0339dadbd5d599488d94f90", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.d.ts": { + "version": "bdf0a372e233a8f5ab5daba2763ab8897e1044d735c1698a261b8e2ab08d8d13", + "signature": "bdf0a372e233a8f5ab5daba2763ab8897e1044d735c1698a261b8e2ab08d8d13", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-query.decorator.d.ts": { + "version": "9cca15b1c8c4fca29fc938964765d521690d320f1cc478ce3d907abef60b7711", + "signature": "9cca15b1c8c4fca29fc938964765d521690d320f1cc478ce3d907abef60b7711", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-response.decorator.d.ts": { + "version": "1205f9908206109effcfe3649bdac82907939bae2e3cb132f8f6236b587515ac", + "signature": "1205f9908206109effcfe3649bdac82907939bae2e3cb132f8f6236b587515ac", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-security.decorator.d.ts": { + "version": "f6b244e6e11ff78419f979c56e1c8eecd277c54fa932a1eae39f69530ed6b0ce", + "signature": "f6b244e6e11ff78419f979c56e1c8eecd277c54fa932a1eae39f69530ed6b0ce", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-use-tags.decorator.d.ts": { + "version": "fef736cfb404b4db9aa942f377dbbac6edb76d18aabd3b647713fa75da8939e9", + "signature": "fef736cfb404b4db9aa942f377dbbac6edb76d18aabd3b647713fa75da8939e9", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/api-extension.decorator.d.ts": { + "version": "45659c92e49dfca4601acc7e57fbb03a71513c69768984baf86ead8d20387a01", + "signature": "45659c92e49dfca4601acc7e57fbb03a71513c69768984baf86ead8d20387a01", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/decorators/index.d.ts": { + "version": "44d8e9e3978043513ea75120312cee0705a65355fd1253dab6de966adc0409bc", + "signature": "44d8e9e3978043513ea75120312cee0705a65355fd1253dab6de966adc0409bc", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/interfaces/swagger-custom-options.interface.d.ts": { + "version": "f247409326a7d8d7efe135867ed4123e79eeafe9a8e2d894fc3d39e8a2d02dc0", + "signature": "f247409326a7d8d7efe135867ed4123e79eeafe9a8e2d894fc3d39e8a2d02dc0", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/interfaces/swagger-document-options.interface.d.ts": { + "version": "17b5469df1d2c13496e90752122e1236d9ebd057fe5ff3b37f1e3b4613ea3969", + "signature": "17b5469df1d2c13496e90752122e1236d9ebd057fe5ff3b37f1e3b4613ea3969", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts": { + "version": "8fc97ef271771dc6f81a9c846d007ac4f0cb5779e3f441c1de54dfda5046fe7b", + "signature": "8fc97ef271771dc6f81a9c846d007ac4f0cb5779e3f441c1de54dfda5046fe7b", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/document-builder.d.ts": { + "version": "8b764503654cce10e3570288daa5f7c51a33fce4050eb56df8d4fca9662b8bdf", + "signature": "8b764503654cce10e3570288daa5f7c51a33fce4050eb56df8d4fca9662b8bdf", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/swagger-module.d.ts": { + "version": "b64fec482d5c612291eebd81e32993663ee90a5dc05cfe43464e6ef5ee1cae73", + "signature": "b64fec482d5c612291eebd81e32993663ee90a5dc05cfe43464e6ef5ee1cae73", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/type-helpers/intersection-type.helper.d.ts": { + "version": "2dd9d764938d20a0613b89b14d7da644f7be4a70d22f18c3019254029d7a7a3c", + "signature": "2dd9d764938d20a0613b89b14d7da644f7be4a70d22f18c3019254029d7a7a3c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/type-helpers/omit-type.helper.d.ts": { + "version": "021034a82ea821144b711eeba792f824f03d30b5cdb3b20a63e9bc5ad0531fdf", + "signature": "021034a82ea821144b711eeba792f824f03d30b5cdb3b20a63e9bc5ad0531fdf", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/type-helpers/partial-type.helper.d.ts": { + "version": "b251114717c08c462c1a8388155ded58cbdfbadc13488b775a4eaaa59863dc46", + "signature": "b251114717c08c462c1a8388155ded58cbdfbadc13488b775a4eaaa59863dc46", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/type-helpers/pick-type.helper.d.ts": { + "version": "a2e546426763a9d5d4b5b10b928fb312f8b76e581c8a985362cd04a01859e51a", + "signature": "a2e546426763a9d5d4b5b10b928fb312f8b76e581c8a985362cd04a01859e51a", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/type-helpers/index.d.ts": { + "version": "33bb0d96cea9782d701332e6b7390f8efae3af92fd3e2aa2ac45e4a610e705d6", + "signature": "33bb0d96cea9782d701332e6b7390f8efae3af92fd3e2aa2ac45e4a610e705d6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/utils/get-schema-path.util.d.ts": { + "version": "ae3e98448468e46474d817b5ebe74db11ab22c2feb60e292d96ce1a4ee963623", + "signature": "ae3e98448468e46474d817b5ebe74db11ab22c2feb60e292d96ce1a4ee963623", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/utils/index.d.ts": { + "version": "f0a2fdee9e801ac9320a8660dd6b8a930bf8c5b658d390ae0feafdba8b633688", + "signature": "f0a2fdee9e801ac9320a8660dd6b8a930bf8c5b658d390ae0feafdba8b633688", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/dist/index.d.ts": { + "version": "7beb7f04f6186bdac5e622d44e4cac38d9f2b9fcad984b10d3762e369524dd77", + "signature": "7beb7f04f6186bdac5e622d44e4cac38d9f2b9fcad984b10d3762e369524dd77", + "affectsGlobalScope": false + }, + "../node_modules/@nestjs/swagger/index.d.ts": { + "version": "8f1241f5d9f0d3d72117768b3c974e462840fbd85026fb66685078945404cf2f", + "signature": "8f1241f5d9f0d3d72117768b3c974e462840fbd85026fb66685078945404cf2f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/exceptions/request-query.exception.d.ts": { + "version": "15064948710d921d7a28bf8c6714f7dc56ebf093ec721a9e4ad9b3aed605cdcc", + "signature": "15064948710d921d7a28bf8c6714f7dc56ebf093ec721a9e4ad9b3aed605cdcc", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/exceptions/index.d.ts": { + "version": "b6fcb27b4793d97d39247173a929e407bc3a3dd0dfa54bb98f2abb9e7fde9974", + "signature": "b6fcb27b4793d97d39247173a929e407bc3a3dd0dfa54bb98f2abb9e7fde9974", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/interfaces/request-query-builder-options.interface.d.ts": { + "version": "e14edc83de4c1407d232b4f1f30467e35c63b212cfb7ac9b9896a14c28baf1df", + "signature": "e14edc83de4c1407d232b4f1f30467e35c63b212cfb7ac9b9896a14c28baf1df", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts": { + "version": "50039e31dee11e6b5e0d4e0f5b5ec68ab12e50d7dd5dce59a21260d506a3a82b", + "signature": "50039e31dee11e6b5e0d4e0f5b5ec68ab12e50d7dd5dce59a21260d506a3a82b", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/types/request-param.types.d.ts": { + "version": "4442b5286a834b7d9d24645c193ddc0d9b8f5b4448ec9e7e240716ddb7c24294", + "signature": "4442b5286a834b7d9d24645c193ddc0d9b8f5b4448ec9e7e240716ddb7c24294", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts": { + "version": "05a3c9f3d7dd762a3bbd97533267e1e8c156262f5e4b3e94b375ed9121962f44", + "signature": "05a3c9f3d7dd762a3bbd97533267e1e8c156262f5e4b3e94b375ed9121962f44", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/interfaces/params-options.interface.d.ts": { + "version": "8fa6724156796ae4345b929e219d9d7258ce64167d5b07be3084641f257e3094", + "signature": "8fa6724156796ae4345b929e219d9d7258ce64167d5b07be3084641f257e3094", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/util/lib/checks.util.d.ts": { + "version": "d53d29f2fde138448b2d14408068e4a3c90c55a47bd1e6d47028aa17cbdb1c0e", + "signature": "d53d29f2fde138448b2d14408068e4a3c90c55a47bd1e6d47028aa17cbdb1c0e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/util/lib/obj.util.d.ts": { + "version": "0f676ffe100751550f5e7a5e2c489cd800097a7db8dc50a3d0dbe8cedee3f5de", + "signature": "0f676ffe100751550f5e7a5e2c489cd800097a7db8dc50a3d0dbe8cedee3f5de", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/util/lib/types/object-literal.type.d.ts": { + "version": "66e7552c41ac95d51c2a74e62353261c17ca7981d516150a53e7e89c60fdeda1", + "signature": "66e7552c41ac95d51c2a74e62353261c17ca7981d516150a53e7e89c60fdeda1", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/util/lib/types/index.d.ts": { + "version": "b1f1556fe9597a1f125a8df1c3fca5e46b791e7d73915560913ef257992c809c", + "signature": "b1f1556fe9597a1f125a8df1c3fca5e46b791e7d73915560913ef257992c809c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/util/lib/index.d.ts": { + "version": "8c3925d24aa419257029b7c8f8019a40caaf044c9798ce2941be05c5b5c8c443", + "signature": "8c3925d24aa419257029b7c8f8019a40caaf044c9798ce2941be05c5b5c8c443", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/interfaces/parsed-request.interface.d.ts": { + "version": "18ab84fe7e0d5d966e51973520eb54f749b447db86f11a308ecba694f8817cc7", + "signature": "18ab84fe7e0d5d966e51973520eb54f749b447db86f11a308ecba694f8817cc7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/interfaces/create-query-params.interface.d.ts": { + "version": "7f768a9f28ac08dacabc6f4bfe9194cf0156205aafdfc55540ff6e87f0648f32", + "signature": "7f768a9f28ac08dacabc6f4bfe9194cf0156205aafdfc55540ff6e87f0648f32", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts": { + "version": "01b14b7e33171c8e8a3718ff003e831aa5008432b23c943e5e10728d95a99cb2", + "signature": "01b14b7e33171c8e8a3718ff003e831aa5008432b23c943e5e10728d95a99cb2", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/request-query.builder.d.ts": { + "version": "4810cf05f594ea5a60752aab57631a3f84b79338be1edb16ee939f3a90a608b4", + "signature": "4810cf05f594ea5a60752aab57631a3f84b79338be1edb16ee939f3a90a608b4", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/request-query.parser.d.ts": { + "version": "a7d45ae2b9704222dbd3bf5a333a6e7b42861347b36d69540cbb450d6421aa5b", + "signature": "a7d45ae2b9704222dbd3bf5a333a6e7b42861347b36d69540cbb450d6421aa5b", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-request/lib/index.d.ts": { + "version": "5df4f11ff2f7d27bbe054ae21c08b8ae7c7aee84999b1182cfc18c1bd76e9c43", + "signature": "5df4f11ff2f7d27bbe054ae21c08b8ae7c7aee84999b1182cfc18c1bd76e9c43", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/services/crud-service.abstract.d.ts": { + "version": "e40d1c5ee4217e57a95e5e87bcf5944b769434037832261a47006f0e5d27254e", + "signature": "e40d1c5ee4217e57a95e5e87bcf5944b769434037832261a47006f0e5d27254e", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/services/index.d.ts": { + "version": "a61a21cdc97cfcafbeb7393b1193d9195a85854728a45ac537f6695e69b8af3b", + "signature": "a61a21cdc97cfcafbeb7393b1193d9195a85854728a45ac537f6695e69b8af3b", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/crud-controller.interface.d.ts": { + "version": "3a0f2aa3e7c4e9d4fdf5ea57aa968c1fc7f76a4edb1b6ae6f07bb16230f541d5", + "signature": "3a0f2aa3e7c4e9d4fdf5ea57aa968c1fc7f76a4edb1b6ae6f07bb16230f541d5", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/model-options.interface.d.ts": { + "version": "9fb8b5ecf745a09cb22da49e08ee4f3d0ea8e3707e3be113dc5cb420ed8f8939", + "signature": "9fb8b5ecf745a09cb22da49e08ee4f3d0ea8e3707e3be113dc5cb420ed8f8939", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts": { + "version": "7d8fe79a40e0c46dfda71a04f029629d7bef718ce8a357328b151b8cbcfae29f", + "signature": "7d8fe79a40e0c46dfda71a04f029629d7bef718ce8a357328b151b8cbcfae29f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/types/base-route-name.type.d.ts": { + "version": "27b976ff5693d4ae49e5e4b20e6c32287fe6c4d3d6704953a3fbb9a96b33f824", + "signature": "27b976ff5693d4ae49e5e4b20e6c32287fe6c4d3d6704953a3fbb9a96b33f824", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/types/query-filter-option.type.d.ts": { + "version": "533a68e2c607c667ba808ab3fc13cc4e461e90a56c00515dd07cbe343e1c9e44", + "signature": "533a68e2c607c667ba808ab3fc13cc4e461e90a56c00515dd07cbe343e1c9e44", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/types/index.d.ts": { + "version": "0d19d3e71a2b68ba7fc539b58f0e14c3448f5576c22924921119f6922c804c78", + "signature": "0d19d3e71a2b68ba7fc539b58f0e14c3448f5576c22924921119f6922c804c78", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/query-options.interface.d.ts": { + "version": "ed34548ee2fdfbc4586210361556dcc28805bd24ecf2632accd05c3d4471a4f1", + "signature": "ed34548ee2fdfbc4586210361556dcc28805bd24ecf2632accd05c3d4471a4f1", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts": { + "version": "7f0dc4192384837bdd6761a76b853fa566d566b370f88d7430de9ae5a53738fb", + "signature": "7f0dc4192384837bdd6761a76b853fa566d566b370f88d7430de9ae5a53738fb", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts": { + "version": "5d3f2f0bcdd6aa498d09aaa34a6c7c2ce9d326b403c81778222c0872bb17c638", + "signature": "5d3f2f0bcdd6aa498d09aaa34a6c7c2ce9d326b403c81778222c0872bb17c638", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/dto-options.interface.d.ts": { + "version": "7a4a8fff6a11e72e671fd5aeb911786600f5f1aa87015f24926a6a2db611b46c", + "signature": "7a4a8fff6a11e72e671fd5aeb911786600f5f1aa87015f24926a6a2db611b46c", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/serialize-options.interface.d.ts": { + "version": "0f996757c1028ff1c294ce2c2c9d50c3e10f1f38361e2315c55321f96a0b8e75", + "signature": "0f996757c1028ff1c294ce2c2c9d50c3e10f1f38361e2315c55321f96a0b8e75", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/crud-options.interface.d.ts": { + "version": "ed39489e1bb0ff755f2aba9512028236390ebb27aa388528799af70cf6a37e88", + "signature": "ed39489e1bb0ff755f2aba9512028236390ebb27aa388528799af70cf6a37e88", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/base-route.interface.d.ts": { + "version": "06962baf8380d88edd0c8b447c74438a472dae9e4f4a416c1a2daa96eb6affd6", + "signature": "06962baf8380d88edd0c8b447c74438a472dae9e4f4a416c1a2daa96eb6affd6", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/crud-request.interface.d.ts": { + "version": "e73b41ff61439fb6517d30a0242aa9113ae279019e6cc2d08e9738abac99a43f", + "signature": "e73b41ff61439fb6517d30a0242aa9113ae279019e6cc2d08e9738abac99a43f", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/create-many-dto.interface.d.ts": { + "version": "d03f8a8de2d90a6e28400c243ca4ed5029b5fbd39242a5c32fe6480864df48da", + "signature": "d03f8a8de2d90a6e28400c243ca4ed5029b5fbd39242a5c32fe6480864df48da", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/get-many-default-response.interface.d.ts": { + "version": "57ae1f26e87d644a50dfff6c9fd1fa0049c0ded7e3748ef0e957ca7e272378ba", + "signature": "57ae1f26e87d644a50dfff6c9fd1fa0049c0ded7e3748ef0e957ca7e272378ba", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/crud-global-config.interface.d.ts": { + "version": "cd890687eface070be781e71cb821ccfb87afe2b7266f8f6989b797e4c3e14dc", + "signature": "cd890687eface070be781e71cb821ccfb87afe2b7266f8f6989b797e4c3e14dc", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts": { + "version": "a27ff3e5b60612b0070c49f8edea4e199c9c0ef03d96f4bb5521bf311994df85", + "signature": "a27ff3e5b60612b0070c49f8edea4e199c9c0ef03d96f4bb5521bf311994df85", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/decorators/crud.decorator.d.ts": { + "version": "e24b4fc660f50c149719ca33066d2b4ef3f6ac0ab9e1a4ec030e3de0a9596040", + "signature": "e24b4fc660f50c149719ca33066d2b4ef3f6ac0ab9e1a4ec030e3de0a9596040", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/decorators/crud-auth.decorator.d.ts": { + "version": "fcd8f556f3eaf51e68ed851862e92afa442bbf4df7fa494ab38884176c96f298", + "signature": "fcd8f556f3eaf51e68ed851862e92afa442bbf4df7fa494ab38884176c96f298", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/decorators/override.decorator.d.ts": { + "version": "8d60fae4d1279e8bacffa7e67da83e431aaf4272a2ee936bdc0ebf784a4fb645", + "signature": "8d60fae4d1279e8bacffa7e67da83e431aaf4272a2ee936bdc0ebf784a4fb645", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/decorators/parsed-request.decorator.d.ts": { + "version": "770cfa3eee365f3382d236749c555f99eb62b4f629e6cbf7342c6681752116a8", + "signature": "770cfa3eee365f3382d236749c555f99eb62b4f629e6cbf7342c6681752116a8", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/decorators/parsed-body.decorator.d.ts": { + "version": "95e1035d4c56c28603e087fe399aabd7b8e752a5d6380735314e62101440b073", + "signature": "95e1035d4c56c28603e087fe399aabd7b8e752a5d6380735314e62101440b073", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/decorators/feature-action.decorator.d.ts": { + "version": "9c54bcaf07c28e825ae9898f7eb4f4db97cbd9145a68e97fd354020fe6421723", + "signature": "9c54bcaf07c28e825ae9898f7eb4f4db97cbd9145a68e97fd354020fe6421723", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/decorators/index.d.ts": { + "version": "5f64b8dc97c99a26d98c02143f1f8ac3ba4506f02b81c8bba7736b1a3bf74a69", + "signature": "5f64b8dc97c99a26d98c02143f1f8ac3ba4506f02b81c8bba7736b1a3bf74a69", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/enums/crud-actions.enum.d.ts": { + "version": "aaf9a8cc8778ea490ae145406a4bd9eb405ef46653cd2016cdb69f026795ddbe", + "signature": "aaf9a8cc8778ea490ae145406a4bd9eb405ef46653cd2016cdb69f026795ddbe", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/enums/crud-validation-groups.enum.d.ts": { + "version": "8a2791e9460e40a704bfd2dced0d74ccd0c6a4cfc600be4b05481e9996554564", + "signature": "8a2791e9460e40a704bfd2dced0d74ccd0c6a4cfc600be4b05481e9996554564", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts": { + "version": "c4f7cee4d1fb5d3614e30cd442624f8f1d67c99c1d7b6d717a86c2921d5b6e2a", + "signature": "c4f7cee4d1fb5d3614e30cd442624f8f1d67c99c1d7b6d717a86c2921d5b6e2a", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/module/crud-config.service.d.ts": { + "version": "3da8eb2b27e412f769d8f078925698e9a9b9daa62ae7c572bfce6b3ad83aadd3", + "signature": "3da8eb2b27e412f769d8f078925698e9a9b9daa62ae7c572bfce6b3ad83aadd3", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/module/index.d.ts": { + "version": "aa99345e0eae671e1e3b285d50df1c5c4889928d4da49e871e134d7bcc6a38a2", + "signature": "aa99345e0eae671e1e3b285d50df1c5c4889928d4da49e871e134d7bcc6a38a2", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interceptors/crud-base.interceptor.d.ts": { + "version": "4c0f467ade8d836aeaf16c9b114dae3fd3943a505128ee93c41bc04b25d1dcb7", + "signature": "4c0f467ade8d836aeaf16c9b114dae3fd3943a505128ee93c41bc04b25d1dcb7", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interceptors/crud-request.interceptor.d.ts": { + "version": "ac46b24d4a2a2492f5a41eb398b14fbf68c77f96cb3e476ee72fbfcf9bd3a537", + "signature": "ac46b24d4a2a2492f5a41eb398b14fbf68c77f96cb3e476ee72fbfcf9bd3a537", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interceptors/crud-response.interceptor.d.ts": { + "version": "fafd16378c193d229e63236a8c52d4f0eaa7ff56def103573748f2ad49e57e53", + "signature": "fafd16378c193d229e63236a8c52d4f0eaa7ff56def103573748f2ad49e57e53", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/interceptors/index.d.ts": { + "version": "4fbae4156cebc96b087209923ef781510c8e7af4b90af061b65e07f03d0ca2aa", + "signature": "4fbae4156cebc96b087209923ef781510c8e7af4b90af061b65e07f03d0ca2aa", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud/lib/index.d.ts": { + "version": "e363d66ef2df76d97fb29509dd87d158777c6d027d0e4a456958aa2a9e5cec9e", + "signature": "e363d66ef2df76d97fb29509dd87d158777c6d027d0e4a456958aa2a9e5cec9e", + "affectsGlobalScope": false + }, + "../src/app/shared/model/entities/base-entity.entity.ts": { + "version": "1f75790781316019f97a0bda8b43b911901536b0a49fa60338fa70640d666375", + "signature": "3a292f731055f5e0d7829f8d37531545c163754992cf1791c7de29044250271a", + "affectsGlobalScope": false + }, + "../src/app/core/auth/model/roles.enum.ts": { + "version": "4598f461e818411d9ec1e83c70dfe14a4358be8ad917398f94058b48e5fbbd75", + "signature": "697c3795c6da8ac5aa50ed68fa297de33fd99226c955e2bd22a65e8073b80b39", + "affectsGlobalScope": false + }, + "../src/app/core/user/model/entities/user.entity.ts": { + "version": "8e8bc0fe8848ec8285231f0cefd1808b68bfbd5873a4a0ebbbf69a7056045cf4", + "signature": "1fc510f5a428defb18ca15264fd98cb92121d1866da58e95ca8504f9efdb9690", + "affectsGlobalScope": false + }, + "../node_modules/@types/bcrypt/index.d.ts": { + "version": "18b9a9702d2fc7d3766b0c8124133c761ad25a9d767925005777eb2c2cd8aeba", + "signature": "18b9a9702d2fc7d3766b0c8124133c761ad25a9d767925005777eb2c2cd8aeba", + "affectsGlobalScope": false + }, + "../src/app/core/user/services/user.service.ts": { + "version": "6da1c336065b8b8f92d1103d6036e92404892c4ab603afe5d6085b44f528b3fb", + "signature": "3208b4180e4400296a7cdae5c279c7b10ef6f54e814aee2270d0d8811c132d4a", + "affectsGlobalScope": false + }, + "../src/app/core/auth/model/login.dto.ts": { + "version": "edb17180f190174cafa93884bde230a791d1e2c78e215ccf5c936e48fc21592f", + "signature": "87f4bd3cd3c723dfc9b25401f21c2cca66a8fb0ecf6d091981958498e6e0c6ab", + "affectsGlobalScope": false + }, + "../src/app/core/auth/services/auth.service.ts": { + "version": "d57a57d472eab34445204e3cf842532265dfe18ca1178675479458df9b35db09", + "signature": "83827e58e4469c1ec58682e65881392d4f67e30ff1be0caa088fc1bba65e3123", + "affectsGlobalScope": false + }, + "../src/app/core/auth/decorators/get-user.decorator.ts": { + "version": "13a9adb3a4e7cb56b5e3fe17f967501369b008dc63ed0444c0911dceee4bcb82", + "signature": "2c1bb2d99a6b74e7a83e2f3ffa738a80a902c6ce2e34ceb2ae776f1761357fb1", + "affectsGlobalScope": false + }, + "../src/app/core/auth/controllers/auth.controller.ts": { + "version": "bd3b49fb81f888b15c2eb65c19d0dd7318357deed6040ac118d5cf91ba09b67d", + "signature": "4e976a5920633143692849575bac3bbe99000d8a453507578e2b0d15f29df61a", + "affectsGlobalScope": false + }, + "../node_modules/@types/passport-strategy/index.d.ts": { + "version": "29d59e921bc723594bbfc98230d24f38f0d5a669f28fcf989b7468f4f95b7c52", + "signature": "29d59e921bc723594bbfc98230d24f38f0d5a669f28fcf989b7468f4f95b7c52", + "affectsGlobalScope": false + }, + "../node_modules/@types/passport-jwt/index.d.ts": { + "version": "d306be26f96b4bd9b279cd7da9d1355d5ce4060a2bb254489c1b95c87057eb38", + "signature": "d306be26f96b4bd9b279cd7da9d1355d5ce4060a2bb254489c1b95c87057eb38", + "affectsGlobalScope": false + }, + "../src/app/core/auth/strategies/jwt.strategy.ts": { + "version": "3dbd9915613f13f1a38a6545326a064f6d6e0795a774cc0aca9af6fe78e16dc0", + "signature": "97575e7629c23b07f2371ab3e1cc201d3f80430b63d4e6047141919a09006f1c", + "affectsGlobalScope": false + }, + "../src/app/core/auth/auth.module.ts": { + "version": "cae3aa8b2730d59f6998de63d8edf3cddbce654750b75301523f1d660a8798da", + "signature": "2e5d258cf85349b02b015c3f1b8873c152d182c3819a7ccc3aff16fc3037a5fc", + "affectsGlobalScope": false + }, + "../src/app/core/user/user.module.ts": { + "version": "ea15fd1394b2dfa9d158df3873301a9c8c8c507f2c5a7bdd90a68d8d8290a2f0", + "signature": "9e36626cb39f17790cf2403e2e54d8a74542da63e2a49aba7061133a1af26dcd", + "affectsGlobalScope": false + }, + "../src/app/core/core.module.ts": { + "version": "4c40249a9cdae020d3eefe081fe7dff03324e1012eb1566752d866130569bf28", + "signature": "994c9d7b726bd25178469ef71fa4cb0789a11c968d0398146d88fc92ec40f9b1", + "affectsGlobalScope": false + }, + "../src/app/event/model/entities/event.entity.ts": { + "version": "dcbe4bc5bcdffe3b19e5d10641e170d947d8d6815036af020f19f5facb1f57af", + "signature": "7060986174c73266fba91a88ea0de1858e66c5f60d23fbe8609bdabf0aaaf65b", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-typeorm/lib/typeorm-crud.service.d.ts": { + "version": "0c69232aaf9c1b4e87c64203aa0d9cef479901e530db9271f7b25a86d94d6eaa", + "signature": "0c69232aaf9c1b4e87c64203aa0d9cef479901e530db9271f7b25a86d94d6eaa", + "affectsGlobalScope": false + }, + "../node_modules/@nestjsx/crud-typeorm/lib/index.d.ts": { + "version": "d7073880324319cfecc7f8139ccb9f947e161e29a7f6ea049d3bfb16a5af698b", + "signature": "d7073880324319cfecc7f8139ccb9f947e161e29a7f6ea049d3bfb16a5af698b", + "affectsGlobalScope": false + }, + "../src/app/event/services/event.crud.service.ts": { + "version": "6d936ba878a9acea92c35acf38b91b0202b4c2a49ee5b18a1ae0ce89303ba36f", + "signature": "029e85daab64b9bd56d0c5a00d090b5be0850c33f490d202352991d81649163b", + "affectsGlobalScope": false + }, + "../src/app/event/controllers/event.crud.controller.ts": { + "version": "51868ff85d0a1b378d0090ef2282787c36ad1d3aff049c2d3e1b844f75eeea1a", + "signature": "91e2950fb5826258cd75fb44d2f944485b8903ec389ec1155a7a3212e1476dac", + "affectsGlobalScope": false + }, + "../src/app/event/event.module.ts": { + "version": "a8f302a5e32c9aae803d55b99420b6049ecdeb901902121a192217f18cbac276", + "signature": "803f29aa166651e3cfc447a0d59d29a050cb599d355bfc1a8639abed06e1ae51", + "affectsGlobalScope": false + }, + "../src/app/queue-detail/model/entities/queue-detail.entity.ts": { + "version": "149501711eece446b5f16459cc923bf2cc5cbc645a9027377e1b5660a27e8548", + "signature": "2628c4a71a55eeee625ef9eb84997caab0bd88c0b86dc69884974de259e6290f", + "affectsGlobalScope": false + }, + "../src/app/queue-detail/model/entities/queuedetail.dto.ts": { + "version": "e26df79c4a1afc1efa1264a1f6fca243b682f3f27f20a3c7b096ef20ea0be6f5", + "signature": "9e51d46ca92e79fcc008943a18affd122f510deb84c69048916f5109c53fc6cf", + "affectsGlobalScope": false + }, + "../src/app/queue-detail/services/queue-detail.crud.service.ts": { + "version": "a611da6cb32adcd9048f20e66046d23b2100d061f570c3ddc321f8eb73af98c0", + "signature": "318a7c88aeb05baff979cf3223bf863562da720638a7081757bb87edbe42df70", + "affectsGlobalScope": false + }, + "../src/app/queue-detail/controllers/queue-detail.crud.controller.ts": { + "version": "bfc92f0e61766e327326af968d711d23788b36d282060a6740ed2aff0468df6a", + "signature": "e161c981d9f079af0be65aebf152ac6fc720811cb0a80fbef26c4275a88406a8", + "affectsGlobalScope": false + }, + "../src/app/queue-detail/queue-detail.module.ts": { + "version": "b60b50a9fd60ed91ed1d5a7dc647277d5ed698506c12fb0f87c8512702ce777f", + "signature": "281ca4ca2bdc4564ffcbd5a9642e316d52a86cf79933e446682a01eb86357d22", + "affectsGlobalScope": false + }, + "../src/app/app.module.ts": { + "version": "3c3a33742d7ede8ec28ffc9541221104a94825f40fdea284e88a57ac6ae820a2", + "signature": "9fc7f7b6ad854404973b8cba8e6d883f758237991968e9a3965d716d46f1da88", + "affectsGlobalScope": false + }, + "../node_modules/@types/helmet/index.d.ts": { + "version": "0689dfab1933604b01cfd5149a32d5fa383fbfef4a9e6c5a8d3a8cf2a4f52cde", + "signature": "0689dfab1933604b01cfd5149a32d5fa383fbfef4a9e6c5a8d3a8cf2a4f52cde", + "affectsGlobalScope": false + }, + "../src/main.ts": { + "version": "5bb465fc5025ab5db5d623c575e6509313ce6b2f77225586dcdc1a62b1cfa2c9", + "signature": "f761c91419d0a89422a0004ef1a92929dd4d2d5e5c16758654d8b0467d1998c6", + "affectsGlobalScope": false + }, + "../src/app/core/auth/decorators/roles.decorator.ts": { + "version": "c70c771cd92d3c9886988b489b4fa99d0d8359661044e06c96065813aee2209f", + "signature": "90424e4cfc943c735ec67a381b61de5f12de3a4fa11f472e01feef5ab9dbe988", + "affectsGlobalScope": false + }, + "../src/app/core/auth/guards/roles.guard.ts": { + "version": "70e33cde57156406838ecf5a751ef659367b8fcffc8b672799c5a3f001c289be", + "signature": "2034addee7c54c9756a5bca03bf90600cec6aca19627c71b632cfaef2e62a954", + "affectsGlobalScope": false + }, + "../src/app/core/auth/model/user-request.interface.ts": { + "version": "18fe51e9ab4b8402d15672c6a66b40fa3340f84b82e1560d3505e5e3324eb5fd", + "signature": "56f57506a831960abcf935795e367ffdc18d5aaa98999babf98768623cfb2518", + "affectsGlobalScope": false + }, + "../src/app/core/user/model/dto/user-payload.dto.ts": { + "version": "219521f9998ae5eab6374f0d21bf0748884bc431bb904b91ed9ffaab3e24f028", + "signature": "fb8a8f8a082ec095b16788e4d2eb039f6078380a89fdb158a68d33c74f9c3c7f", + "affectsGlobalScope": false + }, + "../src/config/default.ts": { + "version": "2e71bb50f4eb49a7ddb4da97740e43c159e2f03d37223272b95d2611c655d991", + "signature": "9a89121652e610dc5f21c9c27cd1902469548284f10e65714910bf436ca38cb9", + "affectsGlobalScope": false + }, + "../src/config/develop.ts": { + "version": "5c15e6919c65236ea158f8bce7d867734d03385d2989b6d66dc55cb95fe836c1", + "signature": "9a89121652e610dc5f21c9c27cd1902469548284f10e65714910bf436ca38cb9", + "affectsGlobalScope": false + }, + "../src/config/production.ts": { + "version": "492a16e43ebe1b8783bbfc0956e68581bae11fc36b1cff8505881fcfe4f67048", + "signature": "9a89121652e610dc5f21c9c27cd1902469548284f10e65714910bf436ca38cb9", + "affectsGlobalScope": false + }, + "../src/config/test.ts": { + "version": "8762dfa43b138362a5dc1b9210c57a0e2e17866cf186ced06bf12449606b08ca", + "signature": "9a89121652e610dc5f21c9c27cd1902469548284f10e65714910bf436ca38cb9", + "affectsGlobalScope": false + }, + "../src/config/uat.ts": { + "version": "492a16e43ebe1b8783bbfc0956e68581bae11fc36b1cff8505881fcfe4f67048", + "signature": "9a89121652e610dc5f21c9c27cd1902469548284f10e65714910bf436ca38cb9", + "affectsGlobalScope": false + }, + "../src/migration/1609823263069-createtables.ts": { + "version": "9c150a3e82dee5f28f3a180a70eacb25ba7ed2af64982d4d8db2cdaeba70370b", + "signature": "070fe35ee6304a72fe253f3c69e22abe534b468f03c51c22701f9adeff0d4981", + "affectsGlobalScope": false + }, + "../src/migration/1609823284132-insertdata.ts": { + "version": "8cd7ffe60b0b8c9cd802b5c9c9bfea37622566ac035dfc1616e9baf028456a0a", + "signature": "12d7bd22e0738d1e59e147f80358172ab84844b8e824c4715eda9c59f919f83d", + "affectsGlobalScope": false + }, + "../node_modules/@types/anymatch/index.d.ts": { + "version": "48b52264fa193879a074197839dbb4796fa07e86350ff888e5361e06aa46df76", + "signature": "48b52264fa193879a074197839dbb4796fa07e86350ff888e5361e06aa46df76", + "affectsGlobalScope": false + }, + "../node_modules/@babel/types/lib/index.d.ts": { + "version": "bcb65ca77412000e1f33384efbbb615a8dac55aca6aa06a4552b01e7c8cd6577", + "signature": "bcb65ca77412000e1f33384efbbb615a8dac55aca6aa06a4552b01e7c8cd6577", + "affectsGlobalScope": false + }, + "../node_modules/@types/babel__generator/index.d.ts": { + "version": "b25c5f2970d06c729f464c0aeaa64b1a5b5f1355aa93554bb5f9c199b8624b1e", + "signature": "b25c5f2970d06c729f464c0aeaa64b1a5b5f1355aa93554bb5f9c199b8624b1e", + "affectsGlobalScope": false + }, + "../node_modules/@types/babel__traverse/index.d.ts": { + "version": "8a278bfba7b081cd849434c1130655046639ae90617a682436ed6954e2b57403", + "signature": "8a278bfba7b081cd849434c1130655046639ae90617a682436ed6954e2b57403", + "affectsGlobalScope": false + }, + "../node_modules/@babel/parser/typings/babel-parser.d.ts": { + "version": "b1401d1d9117a5e4d981c965e3408dcb6e2b63022b716816e6d83599ab369a53", + "signature": "b1401d1d9117a5e4d981c965e3408dcb6e2b63022b716816e6d83599ab369a53", + "affectsGlobalScope": false + }, + "../node_modules/@types/babel__template/index.d.ts": { + "version": "3051751533eee92572241b3cef28333212401408c4e7aa21718714b793c0f4ed", + "signature": "3051751533eee92572241b3cef28333212401408c4e7aa21718714b793c0f4ed", + "affectsGlobalScope": false + }, + "../node_modules/@types/babel__core/index.d.ts": { + "version": "a66e700ed470a0cb52d14f3376c1605c70fec8e9659e45f7e22ad07fcd06ae04", + "signature": "a66e700ed470a0cb52d14f3376c1605c70fec8e9659e45f7e22ad07fcd06ae04", + "affectsGlobalScope": false + }, + "../node_modules/@types/cookiejar/index.d.ts": { + "version": "8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6", + "signature": "8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6", + "affectsGlobalScope": false + }, + "../node_modules/@types/eslint/helpers.d.ts": { + "version": "f345b0888d003fd69cb32bad3a0aa04c615ccafc572019e4bd86a52bd5e49e46", + "signature": "f345b0888d003fd69cb32bad3a0aa04c615ccafc572019e4bd86a52bd5e49e46", + "affectsGlobalScope": true + }, + "../node_modules/@types/json-schema/index.d.ts": { + "version": "b2be568d8ce95fcb26eebd04c035d94825655fdf689bf67d799f5ff8cbbb1024", + "signature": "b2be568d8ce95fcb26eebd04c035d94825655fdf689bf67d799f5ff8cbbb1024", + "affectsGlobalScope": false + }, + "../node_modules/@types/estree/index.d.ts": { + "version": "6a38e250306ceccbab257d11b846d5bd12491157d20901fa01afe4050c93c1b5", + "signature": "6a38e250306ceccbab257d11b846d5bd12491157d20901fa01afe4050c93c1b5", + "affectsGlobalScope": false + }, + "../node_modules/@types/eslint/index.d.ts": { + "version": "edb3e2f61a2a6e29a5f9043f73adf65951d52b4c1f22e84050381f7ef0d77318", + "signature": "edb3e2f61a2a6e29a5f9043f73adf65951d52b4c1f22e84050381f7ef0d77318", + "affectsGlobalScope": false + }, + "../node_modules/@types/eslint-scope/index.d.ts": { + "version": "274bda283ef15f4205603ca9967313fc013aa77ae89f2cbeab5fbd51439e96ed", + "signature": "274bda283ef15f4205603ca9967313fc013aa77ae89f2cbeab5fbd51439e96ed", + "affectsGlobalScope": false + }, + "../node_modules/@types/graceful-fs/index.d.ts": { + "version": "cb6cf0480ee1aa9f706db1f6f5add596a1aa10e8c4beb1817f2318384ba684dc", + "signature": "cb6cf0480ee1aa9f706db1f6f5add596a1aa10e8c4beb1817f2318384ba684dc", + "affectsGlobalScope": false + }, + "../node_modules/@types/istanbul-lib-coverage/index.d.ts": { + "version": "de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857", + "signature": "de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857", + "affectsGlobalScope": false + }, + "../node_modules/@types/istanbul-lib-report/index.d.ts": { + "version": "7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee", + "signature": "7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee", + "affectsGlobalScope": false + }, + "../node_modules/@types/istanbul-reports/index.d.ts": { + "version": "905c3e8f7ddaa6c391b60c05b2f4c3931d7127ad717a080359db3df510b7bdab", + "signature": "905c3e8f7ddaa6c391b60c05b2f4c3931d7127ad717a080359db3df510b7bdab", + "affectsGlobalScope": false + }, + "../node_modules/jest-diff/build/cleanupsemantic.d.ts": { + "version": "d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322", + "signature": "d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322", + "affectsGlobalScope": false + }, + "../node_modules/jest-diff/build/types.d.ts": { + "version": "69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2", + "signature": "69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2", + "affectsGlobalScope": false + }, + "../node_modules/jest-diff/build/difflines.d.ts": { + "version": "561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9", + "signature": "561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9", + "affectsGlobalScope": false + }, + "../node_modules/jest-diff/build/printdiffs.d.ts": { + "version": "62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f", + "signature": "62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f", + "affectsGlobalScope": false + }, + "../node_modules/jest-diff/build/index.d.ts": { + "version": "b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc", + "signature": "b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc", + "affectsGlobalScope": false + }, + "../node_modules/pretty-format/build/types.d.ts": { + "version": "5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09", + "signature": "5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09", + "affectsGlobalScope": false + }, + "../node_modules/pretty-format/build/index.d.ts": { + "version": "02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c", + "signature": "02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c", + "affectsGlobalScope": false + }, + "../node_modules/@types/jest/index.d.ts": { + "version": "08c4a97a324b82f7dbc02b9e2bb278b7bb13c160e04e23a16dd04f9d732da20a", + "signature": "08c4a97a324b82f7dbc02b9e2bb278b7bb13c160e04e23a16dd04f9d732da20a", + "affectsGlobalScope": true + }, + "../node_modules/@types/json5/index.d.ts": { + "version": "96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538", + "signature": "96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/common.d.ts": { + "version": "3594c022901a1c8993b0f78a3f534cfb81e7b619ed215348f7f6882f3db02abc", + "signature": "3594c022901a1c8993b0f78a3f534cfb81e7b619ed215348f7f6882f3db02abc", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/array.d.ts": { + "version": "438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2", + "signature": "438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/collection.d.ts": { + "version": "0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8", + "signature": "0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/date.d.ts": { + "version": "187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42", + "signature": "187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/function.d.ts": { + "version": "c9f396e71966bd3a890d8a36a6a497dbf260e9b868158ea7824d4b5421210afe", + "signature": "c9f396e71966bd3a890d8a36a6a497dbf260e9b868158ea7824d4b5421210afe", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/lang.d.ts": { + "version": "509235563ea2b939e1bbe92aae17e71e6a82ceab8f568b45fb4fce7d72523a32", + "signature": "509235563ea2b939e1bbe92aae17e71e6a82ceab8f568b45fb4fce7d72523a32", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/math.d.ts": { + "version": "9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb", + "signature": "9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/number.d.ts": { + "version": "00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a", + "signature": "00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/object.d.ts": { + "version": "c311349ec71bb69399ffc4092853e7d8a86c1ca39ddb4cd129e775c19d985793", + "signature": "c311349ec71bb69399ffc4092853e7d8a86c1ca39ddb4cd129e775c19d985793", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/seq.d.ts": { + "version": "3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd", + "signature": "3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/string.d.ts": { + "version": "4908e4c00832b26ce77a629de8501b0e23a903c094f9e79a7fec313a15da796a", + "signature": "4908e4c00832b26ce77a629de8501b0e23a903c094f9e79a7fec313a15da796a", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/common/util.d.ts": { + "version": "2630a7cbb597e85d713b7ef47f2946d4280d3d4c02733282770741d40672b1a5", + "signature": "2630a7cbb597e85d713b7ef47f2946d4280d3d4c02733282770741d40672b1a5", + "affectsGlobalScope": false + }, + "../node_modules/@types/lodash/index.d.ts": { + "version": "0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8", + "signature": "0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8", + "affectsGlobalScope": true + }, + "../node_modules/@types/minimatch/index.d.ts": { + "version": "1d1e6bd176eee5970968423d7e215bfd66828b6db8d54d17afec05a831322633", + "signature": "1d1e6bd176eee5970968423d7e215bfd66828b6db8d54d17afec05a831322633", + "affectsGlobalScope": false + }, + "../node_modules/@types/normalize-package-data/index.d.ts": { + "version": "c9ad058b2cc9ce6dc2ed92960d6d009e8c04bef46d3f5312283debca6869f613", + "signature": "c9ad058b2cc9ce6dc2ed92960d6d009e8c04bef46d3f5312283debca6869f613", + "affectsGlobalScope": false + }, + "../node_modules/@types/parse-json/index.d.ts": { + "version": "2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b", + "signature": "2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b", + "affectsGlobalScope": false + }, + "../node_modules/@types/prettier/index.d.ts": { + "version": "c4efa4df1372e991aa44b70b8d87b48865d94ecd26e76025854f2273df155253", + "signature": "c4efa4df1372e991aa44b70b8d87b48865d94ecd26e76025854f2273df155253", + "affectsGlobalScope": false + }, + "../node_modules/@types/source-list-map/index.d.ts": { + "version": "67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae", + "signature": "67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae", + "affectsGlobalScope": false + }, + "../node_modules/@types/stack-utils/index.d.ts": { + "version": "c6c4fea9acc55d5e38ff2b70d57ab0b5cdbd08f8bc5d7a226e322cea128c5b57", + "signature": "c6c4fea9acc55d5e38ff2b70d57ab0b5cdbd08f8bc5d7a226e322cea128c5b57", + "affectsGlobalScope": false + }, + "../node_modules/@types/superagent/index.d.ts": { + "version": "022bb15c2fb40bb465a4511476b1796b9977e2bab463ffd8b2b3d1d1a56b00d1", + "signature": "022bb15c2fb40bb465a4511476b1796b9977e2bab463ffd8b2b3d1d1a56b00d1", + "affectsGlobalScope": false + }, + "../node_modules/@types/supertest/index.d.ts": { + "version": "e6540dcaa31aadbd070bea91d31c387c3e03baf78ea56420e706ae77660ae45a", + "signature": "e6540dcaa31aadbd070bea91d31c387c3e03baf78ea56420e706ae77660ae45a", + "affectsGlobalScope": false + }, + "../node_modules/@types/tapable/index.d.ts": { + "version": "d558a0fe921ebcc88d3212c2c42108abf9f0d694d67ebdeba37d7728c044f579", + "signature": "d558a0fe921ebcc88d3212c2c42108abf9f0d694d67ebdeba37d7728c044f579", + "affectsGlobalScope": false + }, + "../node_modules/source-map/source-map.d.ts": { + "version": "2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579", + "signature": "2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579", + "affectsGlobalScope": false + }, + "../node_modules/@types/uglify-js/index.d.ts": { + "version": "0215efc2c3f40fd9ec91f19d277afc9efba41cee054fd0be4c92e75cb10cf2c0", + "signature": "0215efc2c3f40fd9ec91f19d277afc9efba41cee054fd0be4c92e75cb10cf2c0", + "affectsGlobalScope": false + }, + "../node_modules/anymatch/index.d.ts": { + "version": "4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349", + "signature": "4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts": { + "version": "b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9", + "signature": "b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/source.d.ts": { + "version": "8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d", + "signature": "8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/compatsource.d.ts": { + "version": "ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5", + "signature": "ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/concatsource.d.ts": { + "version": "083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9", + "signature": "083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/originalsource.d.ts": { + "version": "274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517", + "signature": "274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/prefixsource.d.ts": { + "version": "6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad", + "signature": "6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/rawsource.d.ts": { + "version": "5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106", + "signature": "5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/replacesource.d.ts": { + "version": "f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c", + "signature": "f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts": { + "version": "0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f", + "signature": "0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts": { + "version": "8ef5aad624890acfe0fa48230edce255f00934016d16acb8de0edac0ea5b21bb", + "signature": "8ef5aad624890acfe0fa48230edce255f00934016d16acb8de0edac0ea5b21bb", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/index.d.ts": { + "version": "9af6248ff4baf0c1ddc62bb0bc43197437bd5fb2c95ff8e10e4cf2e699ea45c1", + "signature": "9af6248ff4baf0c1ddc62bb0bc43197437bd5fb2c95ff8e10e4cf2e699ea45c1", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/lib/cachedsource.d.ts": { + "version": "d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0", + "signature": "d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack-sources/index.d.ts": { + "version": "89b42f8ee5d387a39db85ee2c7123a391c3ede266a2bcd502c85ad55626c3b2b", + "signature": "89b42f8ee5d387a39db85ee2c7123a391c3ede266a2bcd502c85ad55626c3b2b", + "affectsGlobalScope": false + }, + "../node_modules/@types/webpack/index.d.ts": { + "version": "6a11a44c28aeb36e551aad316a3c30e5edd9244396378f664dea164c4ce49fe0", + "signature": "6a11a44c28aeb36e551aad316a3c30e5edd9244396378f664dea164c4ce49fe0", + "affectsGlobalScope": false + }, + "../node_modules/@types/yargs-parser/index.d.ts": { + "version": "3bdd93ec24853e61bfa4c63ebaa425ff3e474156e87a47d90122e1d8cc717c1f", + "signature": "3bdd93ec24853e61bfa4c63ebaa425ff3e474156e87a47d90122e1d8cc717c1f", + "affectsGlobalScope": false + }, + "../node_modules/@types/yargs/index.d.ts": { + "version": "19a1bd57c2b3dd10bc4ae33eaa9e88f0f067858e32b7765b7e9d38138cd07f30", + "signature": "19a1bd57c2b3dd10bc4ae33eaa9e88f0f067858e32b7765b7e9d38138cd07f30", + "affectsGlobalScope": false + } + }, + "options": { + "module": 1, + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": 4, + "sourceMap": true, + "outDir": "./", + "baseUrl": "..", + "incremental": true, + "strict": true, + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "configFilePath": "../tsconfig.build.json" + }, + "referencedMap": { + "../node_modules/@babel/parser/typings/babel-parser.d.ts": [ + "../node_modules/@babel/types/lib/index.d.ts" + ], + "../node_modules/@devon4node/common/serializer/decorators/crud-type.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/class-transformer/classtransformer.d.ts" + ], + "../node_modules/@devon4node/common/serializer/index.d.ts": [ + "../node_modules/@devon4node/common/serializer/decorators/crud-type.decorator.d.ts", + "../node_modules/@devon4node/common/serializer/interceptors/class-serializer.interceptor.d.ts" + ], + "../node_modules/@devon4node/common/serializer/interceptors/class-serializer.interceptor.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@devon4node/config/dist/config.module.d.ts": [ + "../node_modules/@devon4node/config/dist/config.types.d.ts", + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@devon4node/config/dist/config.service.d.ts": [ + "../node_modules/@devon4node/config/dist/config.types.d.ts" + ], + "../node_modules/@devon4node/config/dist/index.d.ts": [ + "../node_modules/@devon4node/config/dist/base-config.d.ts", + "../node_modules/@devon4node/config/dist/config.module.d.ts", + "../node_modules/@devon4node/config/dist/config.service.d.ts", + "../node_modules/@devon4node/config/dist/config.types.d.ts" + ], + "../node_modules/@nestjs/common/cache/cache.module.d.ts": [ + "../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts": [ + "../node_modules/@nestjs/common/decorators/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts": [ + "../node_modules/@nestjs/common/decorators/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts" + ], + "../node_modules/@nestjs/common/cache/decorators/index.d.ts": [ + "../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts", + "../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts" + ], + "../node_modules/@nestjs/common/cache/index.d.ts": [ + "../node_modules/@nestjs/common/cache/cache.constants.d.ts", + "../node_modules/@nestjs/common/cache/cache.module.d.ts", + "../node_modules/@nestjs/common/cache/decorators/index.d.ts", + "../node_modules/@nestjs/common/cache/interceptors/index.d.ts", + "../node_modules/@nestjs/common/cache/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/interceptors/index.d.ts": [ + "../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts" + ], + "../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts": [ + "../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/interfaces/index.d.ts": [ + "../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts", + "../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/index.d.ts": [ + "../node_modules/@nestjs/common/decorators/core/apply-decorators.d.ts", + "../node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/dependencies.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/inject.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/optional.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/set-metadata.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/http/index.d.ts": [ + "../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/header.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/http-code.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/redirect.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/render.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/sse.decorator.d.ts" + ], + "../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts": [ + "../node_modules/@nestjs/common/enums/request-method.enum.d.ts" + ], + "../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/index.d.ts": [ + "../node_modules/@nestjs/common/decorators/core/index.d.ts", + "../node_modules/@nestjs/common/decorators/http/index.d.ts", + "../node_modules/@nestjs/common/decorators/modules/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/modules/index.d.ts": [ + "../node_modules/@nestjs/common/decorators/modules/global.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts" + ], + "../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts" + ], + "../node_modules/@nestjs/common/enums/index.d.ts": [ + "../node_modules/@nestjs/common/enums/http-status.enum.d.ts", + "../node_modules/@nestjs/common/enums/request-method.enum.d.ts", + "../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/gone.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/index.d.ts": [ + "../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/gone.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/http/http.module.d.ts": [ + "../node_modules/@nestjs/common/http/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/http/http.service.d.ts": [ + "../node_modules/axios/index.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/http/index.d.ts": [ + "../node_modules/@nestjs/common/http/http.module.d.ts", + "../node_modules/@nestjs/common/http/http.service.d.ts", + "../node_modules/@nestjs/common/http/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/http/interfaces/http-module.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/axios/index.d.ts" + ], + "../node_modules/@nestjs/common/http/interfaces/index.d.ts": [ + "../node_modules/@nestjs/common/http/interfaces/http-module.interface.d.ts" + ], + "../node_modules/@nestjs/common/index.d.ts": [ + "../node_modules/@nestjs/common/cache/index.d.ts", + "../node_modules/@nestjs/common/decorators/index.d.ts", + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/exceptions/index.d.ts", + "../node_modules/@nestjs/common/http/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/pipes/index.d.ts", + "../node_modules/@nestjs/common/serializer/index.d.ts", + "../node_modules/@nestjs/common/services/index.d.ts", + "../node_modules/@nestjs/common/utils/index.d.ts", + "../node_modules/reflect-metadata/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/hooks/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-init.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts": [ + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/http/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/http/message-event.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/validation-error.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/index.d.ts", + "../node_modules/@nestjs/common/interfaces/http/index.d.ts", + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/index.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/index.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/middleware/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts": [ + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts": [ + "../node_modules/@nestjs/common/services/logger.service.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts": [ + "../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts", + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/common/services/logger.service.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/https-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts": [ + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/common/pipes/index.d.ts": [ + "../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/validation.pipe.d.ts" + ], + "../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/pipes/validation.pipe.d.ts" + ], + "../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts" + ], + "../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts" + ], + "../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts" + ], + "../node_modules/@nestjs/common/pipes/validation.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/validator-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts" + ], + "../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts": [ + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/serializer/decorators/index.d.ts": [ + "../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts" + ], + "../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts": [ + "../node_modules/@nestjs/common/decorators/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/serializer/index.d.ts": [ + "../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts", + "../node_modules/@nestjs/common/serializer/decorators/index.d.ts" + ], + "../node_modules/@nestjs/common/services/index.d.ts": [ + "../node_modules/@nestjs/common/services/logger.service.d.ts" + ], + "../node_modules/@nestjs/common/utils/forward-ref.util.d.ts": [ + "../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts" + ], + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts": [ + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/utils/index.d.ts": [ + "../node_modules/@nestjs/common/utils/forward-ref.util.d.ts" + ], + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts" + ], + "../node_modules/@nestjs/core/adapters/index.d.ts": [ + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts" + ], + "../node_modules/@nestjs/core/application-config.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts" + ], + "../node_modules/@nestjs/core/discovery/discovery-service.d.ts": [ + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts", + "../node_modules/@nestjs/core/injector/modules-container.d.ts" + ], + "../node_modules/@nestjs/core/discovery/index.d.ts": [ + "../node_modules/@nestjs/core/discovery/discovery-module.d.ts", + "../node_modules/@nestjs/core/discovery/discovery-service.d.ts" + ], + "../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/adapters/index.d.ts", + "../node_modules/@nestjs/core/helpers/index.d.ts" + ], + "../node_modules/@nestjs/core/exceptions/index.d.ts": [ + "../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts" + ], + "../node_modules/@nestjs/core/helpers/context-id-factory.d.ts": [ + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts" + ], + "../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts": [ + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts" + ], + "../node_modules/@nestjs/core/helpers/index.d.ts": [ + "../node_modules/@nestjs/core/helpers/context-id-factory.d.ts", + "../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts" + ], + "../node_modules/@nestjs/core/index.d.ts": [ + "../node_modules/@nestjs/core/adapters/index.d.ts", + "../node_modules/@nestjs/core/application-config.d.ts", + "../node_modules/@nestjs/core/constants.d.ts", + "../node_modules/@nestjs/core/discovery/index.d.ts", + "../node_modules/@nestjs/core/exceptions/index.d.ts", + "../node_modules/@nestjs/core/helpers/index.d.ts", + "../node_modules/@nestjs/core/injector/index.d.ts", + "../node_modules/@nestjs/core/metadata-scanner.d.ts", + "../node_modules/@nestjs/core/middleware/index.d.ts", + "../node_modules/@nestjs/core/nest-application-context.d.ts", + "../node_modules/@nestjs/core/nest-application.d.ts", + "../node_modules/@nestjs/core/nest-factory.d.ts", + "../node_modules/@nestjs/core/router/index.d.ts", + "../node_modules/@nestjs/core/services/index.d.ts", + "../node_modules/reflect-metadata/index.d.ts" + ], + "../node_modules/@nestjs/core/injector/container.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/core/application-config.d.ts", + "../node_modules/@nestjs/core/index.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module-token-factory.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts", + "../node_modules/@nestjs/core/injector/modules-container.d.ts" + ], + "../node_modules/@nestjs/core/injector/index.d.ts": [ + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/inquirer/index.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module-ref.d.ts", + "../node_modules/@nestjs/core/injector/modules-container.d.ts" + ], + "../node_modules/@nestjs/core/injector/injector.d.ts": [ + "../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/injector/inquirer/index.d.ts": [ + "../node_modules/@nestjs/core/injector/inquirer/inquirer-constants.d.ts" + ], + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/injector/module-ref.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/injector/module-token-factory.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/core/injector/module.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module-ref.d.ts" + ], + "../node_modules/@nestjs/core/injector/modules-container.d.ts": [ + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/metadata-scanner.d.ts": [ + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts" + ], + "../node_modules/@nestjs/core/middleware/builder.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/index.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts", + "../node_modules/@nestjs/core/middleware/routes-mapper.d.ts" + ], + "../node_modules/@nestjs/core/middleware/index.d.ts": [ + "../node_modules/@nestjs/core/middleware/builder.d.ts" + ], + "../node_modules/@nestjs/core/middleware/routes-mapper.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts" + ], + "../node_modules/@nestjs/core/nest-application-context.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/index.d.ts", + "../node_modules/@nestjs/core/injector/injector.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/nest-application.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts", + "../node_modules/@nestjs/core/adapters/index.d.ts", + "../node_modules/@nestjs/core/application-config.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/nest-application-context.d.ts" + ], + "../node_modules/@nestjs/core/nest-factory.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts", + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts" + ], + "../node_modules/@nestjs/core/router/index.d.ts": [ + "../node_modules/@nestjs/core/router/request/index.d.ts" + ], + "../node_modules/@nestjs/core/router/request/index.d.ts": [ + "../node_modules/@nestjs/core/router/request/request-constants.d.ts" + ], + "../node_modules/@nestjs/core/services/index.d.ts": [ + "../node_modules/@nestjs/core/services/reflector.service.d.ts" + ], + "../node_modules/@nestjs/core/services/reflector.service.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/index.d.ts": [ + "../node_modules/@nestjs/jwt/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/jwt/dist/jwt.module.d.ts", + "../node_modules/@nestjs/jwt/dist/jwt.service.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/interfaces/index.d.ts": [ + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@types/jsonwebtoken/index.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/jwt.module.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/jwt.service.d.ts": [ + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts", + "../node_modules/@types/jsonwebtoken/index.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@nestjs/jwt/index.d.ts": [ + "../node_modules/@nestjs/jwt/dist/index.d.ts" + ], + "../node_modules/@nestjs/passport/dist/auth.guard.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/passport/dist/index.d.ts": [ + "../node_modules/@nestjs/passport/dist/abstract.strategy.d.ts", + "../node_modules/@nestjs/passport/dist/auth.guard.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/passport/dist/passport.module.d.ts", + "../node_modules/@nestjs/passport/dist/passport/passport.serializer.d.ts", + "../node_modules/@nestjs/passport/dist/passport/passport.strategy.d.ts" + ], + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts": [ + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/passport/dist/passport.module.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts" + ], + "../node_modules/@nestjs/passport/dist/passport/passport.serializer.d.ts": [ + "../node_modules/@types/passport/index.d.ts" + ], + "../node_modules/@nestjs/passport/dist/passport/passport.strategy.d.ts": [ + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/passport/index.d.ts": [ + "../node_modules/@nestjs/passport/dist/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-body.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-header.decorator.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-operation.decorator.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-param.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/schema-object-metadata.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-query.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-response.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/decorators/api-basic.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-bearer.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-body.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-consumes.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-cookie.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-exclude-endpoint.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-extension.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-extra-models.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-header.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-hide-property.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-oauth2.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-operation.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-param.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-produces.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-query.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-response.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-security.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-use-tags.decorator.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/document-builder.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/decorators/index.d.ts", + "../node_modules/@nestjs/swagger/dist/document-builder.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/swagger/dist/swagger-module.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/index.d.ts", + "../node_modules/@nestjs/swagger/dist/utils/index.d.ts", + "../node_modules/reflect-metadata/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/swagger-custom-options.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/swagger-document-options.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/interfaces/schema-object-metadata.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/swagger-module.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/type-helpers/intersection-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/omit-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/partial-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/pick-type.helper.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/intersection-type.helper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/omit-type.helper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/partial-type.helper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/pick-type.helper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/utils/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/utils/get-schema-path.util.d.ts" + ], + "../node_modules/@nestjs/swagger/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/common/index.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/common/typeorm.decorators.d.ts", + "../node_modules/@nestjs/typeorm/dist/common/typeorm.utils.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/common/typeorm.decorators.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/common/typeorm.utils.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts", + "../node_modules/rxjs/index.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/index.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/common/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/typeorm.module.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/interfaces/index.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/interfaces/typeorm-options.interface.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/interfaces/typeorm-options.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/typeorm.module.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/typeorm-options.interface.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/index.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/exceptions/index.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/exceptions/request-query.exception.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/index.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/exceptions/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/request-query.builder.d.ts", + "../node_modules/@nestjsx/crud-request/lib/request-query.parser.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/interfaces/create-query-params.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/interfaces/create-query-params.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/parsed-request.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/request-query-builder-options.interface.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/interfaces/params-options.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/interfaces/parsed-request.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts", + "../node_modules/@nestjsx/util/lib/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/request-query.builder.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/request-query.parser.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts", + "../node_modules/@nestjsx/util/lib/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/request-param.types.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts" + ], + "../node_modules/@nestjsx/crud-typeorm/lib/index.d.ts": [ + "../node_modules/@nestjsx/crud-typeorm/lib/typeorm-crud.service.d.ts" + ], + "../node_modules/@nestjsx/crud-typeorm/lib/typeorm-crud.service.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/index.d.ts", + "../node_modules/class-transformer/classtransformer.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/crud-auth.decorator.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/crud.decorator.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/feature-action.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/decorators/crud-auth.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/crud.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/feature-action.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/override.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/parsed-body.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/parsed-request.decorator.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/override.decorator.d.ts": [ + "../node_modules/@nestjsx/crud/lib/types/base-route-name.type.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/enums/crud-actions.enum.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/crud-validation-groups.enum.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/decorators/index.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud/lib/module/index.d.ts", + "../node_modules/@nestjsx/crud/lib/services/index.d.ts", + "../node_modules/@nestjsx/crud/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interceptors/crud-base.interceptor.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interceptors/crud-request.interceptor.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-base.interceptor.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interceptors/crud-response.interceptor.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-base.interceptor.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interceptors/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interceptors/crud-request.interceptor.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-response.interceptor.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts", + "../node_modules/@nestjsx/util/lib/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/base-route.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/crud-controller.interface.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud/lib/services/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/crud-global-config.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/crud-options.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/dto-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/model-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/query-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/serialize-options.interface.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/crud-request.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/base-route.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/create-many-dto.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-controller.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-global-config.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-request.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/dto-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/get-many-default-response.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/model-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/query-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/serialize-options.interface.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts": [ + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts", + "../node_modules/@nestjsx/crud-request/lib/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/query-options.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts", + "../node_modules/@nestjsx/crud/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts": [ + "../node_modules/@nestjsx/crud/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/serialize-options.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/module/crud-config.service.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/module/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/module/crud-config.service.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/services/crud-service.abstract.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/services/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/services/crud-service.abstract.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/types/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/types/base-route-name.type.d.ts", + "../node_modules/@nestjsx/crud/lib/types/query-filter-option.type.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/types/query-filter-option.type.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts" + ], + "../node_modules/@nestjsx/util/lib/index.d.ts": [ + "../node_modules/@nestjsx/util/lib/checks.util.d.ts", + "../node_modules/@nestjsx/util/lib/obj.util.d.ts", + "../node_modules/@nestjsx/util/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/util/lib/types/index.d.ts": [ + "../node_modules/@nestjsx/util/lib/types/object-literal.type.d.ts" + ], + "../node_modules/@types/babel__core/index.d.ts": [ + "../node_modules/@babel/parser/typings/babel-parser.d.ts", + "../node_modules/@babel/types/lib/index.d.ts", + "../node_modules/@types/babel__generator/index.d.ts", + "../node_modules/@types/babel__template/index.d.ts", + "../node_modules/@types/babel__traverse/index.d.ts" + ], + "../node_modules/@types/babel__generator/index.d.ts": [ + "../node_modules/@babel/types/lib/index.d.ts" + ], + "../node_modules/@types/babel__template/index.d.ts": [ + "../node_modules/@babel/parser/typings/babel-parser.d.ts", + "../node_modules/@babel/types/lib/index.d.ts" + ], + "../node_modules/@types/babel__traverse/index.d.ts": [ + "../node_modules/@babel/types/lib/index.d.ts" + ], + "../node_modules/@types/body-parser/index.d.ts": [ + "../node_modules/@types/connect/index.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/connect/index.d.ts": [ + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/eslint-scope/index.d.ts": [ + "../node_modules/@types/eslint/index.d.ts", + "../node_modules/@types/estree/index.d.ts" + ], + "../node_modules/@types/eslint/index.d.ts": [ + "../node_modules/@types/eslint/helpers.d.ts", + "../node_modules/@types/estree/index.d.ts", + "../node_modules/@types/json-schema/index.d.ts" + ], + "../node_modules/@types/express-serve-static-core/index.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/qs/index.d.ts", + "../node_modules/@types/range-parser/index.d.ts" + ], + "../node_modules/@types/express/index.d.ts": [ + "../node_modules/@types/body-parser/index.d.ts", + "../node_modules/@types/express-serve-static-core/index.d.ts", + "../node_modules/@types/qs/index.d.ts", + "../node_modules/@types/serve-static/index.d.ts" + ], + "../node_modules/@types/graceful-fs/index.d.ts": [ + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/helmet/index.d.ts": [ + "../node_modules/@types/express/index.d.ts" + ], + "../node_modules/@types/istanbul-lib-report/index.d.ts": [ + "../node_modules/@types/istanbul-lib-coverage/index.d.ts" + ], + "../node_modules/@types/istanbul-reports/index.d.ts": [ + "../node_modules/@types/istanbul-lib-report/index.d.ts" + ], + "../node_modules/@types/jest/index.d.ts": [ + "../node_modules/jest-diff/build/index.d.ts", + "../node_modules/pretty-format/build/index.d.ts" + ], + "../node_modules/@types/jsonwebtoken/index.d.ts": [ + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/lodash/common/array.d.ts": [ + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/collection.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/common.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/date.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/function.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/lang.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/math.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/number.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/object.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/seq.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/string.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/util.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/index.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts" + ], + "../node_modules/@types/node/base.d.ts": [ + "../node_modules/@types/node/assert.d.ts", + "../node_modules/@types/node/ts3.6/base.d.ts" + ], + "../node_modules/@types/node/child_process.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/cluster.d.ts": [ + "../node_modules/@types/node/child_process.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/net.d.ts" + ], + "../node_modules/@types/node/console.d.ts": [ + "../node_modules/@types/node/util.d.ts" + ], + "../node_modules/@types/node/constants.d.ts": [ + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/os.d.ts" + ], + "../node_modules/@types/node/crypto.d.ts": [ + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/dgram.d.ts": [ + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/net.d.ts" + ], + "../node_modules/@types/node/domain.d.ts": [ + "../node_modules/@types/node/events.d.ts" + ], + "../node_modules/@types/node/fs.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs/promises.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/fs/promises.d.ts": [ + "../node_modules/@types/node/fs.d.ts" + ], + "../node_modules/@types/node/http.d.ts": [ + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/http2.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/tls.d.ts", + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/https.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/tls.d.ts", + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/index.d.ts": [ + "../node_modules/@types/node/base.d.ts" + ], + "../node_modules/@types/node/inspector.d.ts": [ + "../node_modules/@types/node/events.d.ts" + ], + "../node_modules/@types/node/module.d.ts": [ + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/net.d.ts": [ + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/perf_hooks.d.ts": [ + "../node_modules/@types/node/async_hooks.d.ts" + ], + "../node_modules/@types/node/process.d.ts": [ + "../node_modules/@types/node/tty.d.ts" + ], + "../node_modules/@types/node/readline.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/repl.d.ts": [ + "../node_modules/@types/node/readline.d.ts", + "../node_modules/@types/node/util.d.ts", + "../node_modules/@types/node/vm.d.ts" + ], + "../node_modules/@types/node/stream.d.ts": [ + "../node_modules/@types/node/events.d.ts" + ], + "../node_modules/@types/node/tls.d.ts": [ + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/ts3.4/base.d.ts": [ + "../node_modules/@types/node/async_hooks.d.ts", + "../node_modules/@types/node/buffer.d.ts", + "../node_modules/@types/node/child_process.d.ts", + "../node_modules/@types/node/cluster.d.ts", + "../node_modules/@types/node/console.d.ts", + "../node_modules/@types/node/constants.d.ts", + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/dgram.d.ts", + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/domain.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/fs/promises.d.ts", + "../node_modules/@types/node/globals.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/http2.d.ts", + "../node_modules/@types/node/https.d.ts", + "../node_modules/@types/node/inspector.d.ts", + "../node_modules/@types/node/module.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/os.d.ts", + "../node_modules/@types/node/path.d.ts", + "../node_modules/@types/node/perf_hooks.d.ts", + "../node_modules/@types/node/process.d.ts", + "../node_modules/@types/node/punycode.d.ts", + "../node_modules/@types/node/querystring.d.ts", + "../node_modules/@types/node/readline.d.ts", + "../node_modules/@types/node/repl.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/string_decoder.d.ts", + "../node_modules/@types/node/timers.d.ts", + "../node_modules/@types/node/tls.d.ts", + "../node_modules/@types/node/trace_events.d.ts", + "../node_modules/@types/node/tty.d.ts", + "../node_modules/@types/node/url.d.ts", + "../node_modules/@types/node/util.d.ts", + "../node_modules/@types/node/v8.d.ts", + "../node_modules/@types/node/vm.d.ts", + "../node_modules/@types/node/worker_threads.d.ts", + "../node_modules/@types/node/zlib.d.ts" + ], + "../node_modules/@types/node/ts3.6/base.d.ts": [ + "../node_modules/@types/node/globals.global.d.ts", + "../node_modules/@types/node/ts3.4/base.d.ts", + "../node_modules/@types/node/wasi.d.ts" + ], + "../node_modules/@types/node/tty.d.ts": [ + "../node_modules/@types/node/net.d.ts" + ], + "../node_modules/@types/node/url.d.ts": [ + "../node_modules/@types/node/querystring.d.ts" + ], + "../node_modules/@types/node/v8.d.ts": [ + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/worker_threads.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs/promises.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/url.d.ts", + "../node_modules/@types/node/vm.d.ts" + ], + "../node_modules/@types/node/zlib.d.ts": [ + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/passport-jwt/index.d.ts": [ + "../node_modules/@types/express/index.d.ts", + "../node_modules/@types/jsonwebtoken/index.d.ts", + "../node_modules/@types/passport-strategy/index.d.ts" + ], + "../node_modules/@types/passport-strategy/index.d.ts": [ + "../node_modules/@types/express/index.d.ts", + "../node_modules/@types/passport/index.d.ts" + ], + "../node_modules/@types/passport/index.d.ts": [ + "../node_modules/@types/express/index.d.ts", + "../node_modules/@types/node/http.d.ts" + ], + "../node_modules/@types/serve-static/index.d.ts": [ + "../node_modules/@types/mime/index.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/superagent/index.d.ts": [ + "../node_modules/@types/cookiejar/index.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/supertest/index.d.ts": [ + "../node_modules/@types/superagent/index.d.ts" + ], + "../node_modules/@types/uglify-js/index.d.ts": [ + "../node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/index.d.ts": [ + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/webpack-sources/lib/cachedsource.d.ts", + "../node_modules/@types/webpack-sources/lib/compatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/concatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/originalsource.d.ts", + "../node_modules/@types/webpack-sources/lib/prefixsource.d.ts", + "../node_modules/@types/webpack-sources/lib/rawsource.d.ts", + "../node_modules/@types/webpack-sources/lib/replacesource.d.ts", + "../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/cachedsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/compatsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/concatsource.d.ts": [ + "../node_modules/@types/source-list-map/index.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/index.d.ts": [ + "../node_modules/@types/webpack-sources/lib/cachedsource.d.ts", + "../node_modules/@types/webpack-sources/lib/compatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/concatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/originalsource.d.ts", + "../node_modules/@types/webpack-sources/lib/prefixsource.d.ts", + "../node_modules/@types/webpack-sources/lib/rawsource.d.ts", + "../node_modules/@types/webpack-sources/lib/replacesource.d.ts", + "../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/originalsource.d.ts": [ + "../node_modules/@types/source-list-map/index.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/prefixsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/rawsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/replacesource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/source.d.ts": [ + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack/index.d.ts": [ + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/tapable/index.d.ts", + "../node_modules/@types/uglify-js/index.d.ts", + "../node_modules/@types/webpack-sources/index.d.ts", + "../node_modules/anymatch/index.d.ts", + "../node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/yargs/index.d.ts": [ + "../node_modules/@types/yargs-parser/index.d.ts" + ], + "../node_modules/class-transformer/classtransformer.d.ts": [ + "../node_modules/class-transformer/classtransformoptions.d.ts" + ], + "../node_modules/class-transformer/decorators.d.ts": [ + "../node_modules/class-transformer/classtransformoptions.d.ts", + "../node_modules/class-transformer/metadata/exposeexcludeoptions.d.ts", + "../node_modules/class-transformer/transformoperationexecutor.d.ts" + ], + "../node_modules/class-transformer/index.d.ts": [ + "../node_modules/class-transformer/classtransformer.d.ts", + "../node_modules/class-transformer/classtransformoptions.d.ts", + "../node_modules/class-transformer/decorators.d.ts", + "../node_modules/class-transformer/metadata/exposeexcludeoptions.d.ts" + ], + "../node_modules/class-transformer/metadata/typemetadata.d.ts": [ + "../node_modules/class-transformer/metadata/exposeexcludeoptions.d.ts" + ], + "../node_modules/class-transformer/transformoperationexecutor.d.ts": [ + "../node_modules/class-transformer/classtransformoptions.d.ts", + "../node_modules/class-transformer/metadata/typemetadata.d.ts" + ], + "../node_modules/class-validator/decorator/decorators.d.ts": [ + "../node_modules/@types/validator/index.d.ts", + "../node_modules/class-validator/decorator/validationoptions.d.ts", + "../node_modules/class-validator/validation/validationtypeoptions.d.ts" + ], + "../node_modules/class-validator/decorator/validationoptions.d.ts": [ + "../node_modules/class-validator/validation/validationarguments.d.ts" + ], + "../node_modules/class-validator/index.d.ts": [ + "../node_modules/class-validator/container.d.ts", + "../node_modules/class-validator/decorator/decorators.d.ts", + "../node_modules/class-validator/decorator/validationoptions.d.ts", + "../node_modules/class-validator/metadata/metadatastorage.d.ts", + "../node_modules/class-validator/register-decorator.d.ts", + "../node_modules/class-validator/validation-schema/validationschema.d.ts", + "../node_modules/class-validator/validation/validationarguments.d.ts", + "../node_modules/class-validator/validation/validationerror.d.ts", + "../node_modules/class-validator/validation/validationtypeoptions.d.ts", + "../node_modules/class-validator/validation/validationtypes.d.ts", + "../node_modules/class-validator/validation/validator.d.ts", + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts", + "../node_modules/class-validator/validation/validatoroptions.d.ts" + ], + "../node_modules/class-validator/metadata/constraintmetadata.d.ts": [ + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts" + ], + "../node_modules/class-validator/metadata/metadatastorage.d.ts": [ + "../node_modules/class-validator/metadata/constraintmetadata.d.ts", + "../node_modules/class-validator/metadata/validationmetadata.d.ts", + "../node_modules/class-validator/validation-schema/validationschema.d.ts" + ], + "../node_modules/class-validator/metadata/validationmetadata.d.ts": [ + "../node_modules/class-validator/metadata/validationmetadataargs.d.ts", + "../node_modules/class-validator/validation/validationarguments.d.ts" + ], + "../node_modules/class-validator/metadata/validationmetadataargs.d.ts": [ + "../node_modules/class-validator/decorator/validationoptions.d.ts" + ], + "../node_modules/class-validator/register-decorator.d.ts": [ + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts", + "../node_modules/class-validator/validation/validatoroptions.d.ts" + ], + "../node_modules/class-validator/validation/validationtypes.d.ts": [ + "../node_modules/class-validator/validation/validationarguments.d.ts" + ], + "../node_modules/class-validator/validation/validator.d.ts": [ + "../node_modules/@types/validator/index.d.ts", + "../node_modules/class-validator/metadata/validationmetadata.d.ts", + "../node_modules/class-validator/validation/validationerror.d.ts", + "../node_modules/class-validator/validation/validationtypeoptions.d.ts", + "../node_modules/class-validator/validation/validatoroptions.d.ts" + ], + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts": [ + "../node_modules/class-validator/validation/validationarguments.d.ts" + ], + "../node_modules/jest-diff/build/difflines.d.ts": [ + "../node_modules/jest-diff/build/cleanupsemantic.d.ts", + "../node_modules/jest-diff/build/types.d.ts" + ], + "../node_modules/jest-diff/build/index.d.ts": [ + "../node_modules/jest-diff/build/cleanupsemantic.d.ts", + "../node_modules/jest-diff/build/difflines.d.ts", + "../node_modules/jest-diff/build/printdiffs.d.ts", + "../node_modules/jest-diff/build/types.d.ts" + ], + "../node_modules/jest-diff/build/printdiffs.d.ts": [ + "../node_modules/jest-diff/build/cleanupsemantic.d.ts", + "../node_modules/jest-diff/build/types.d.ts" + ], + "../node_modules/pretty-format/build/index.d.ts": [ + "../node_modules/pretty-format/build/types.d.ts" + ], + "../node_modules/rxjs/index.d.ts": [ + "../node_modules/rxjs/internal/asyncsubject.d.ts", + "../node_modules/rxjs/internal/behaviorsubject.d.ts", + "../node_modules/rxjs/internal/config.d.ts", + "../node_modules/rxjs/internal/notification.d.ts", + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/observable/bindcallback.d.ts", + "../node_modules/rxjs/internal/observable/bindnodecallback.d.ts", + "../node_modules/rxjs/internal/observable/combinelatest.d.ts", + "../node_modules/rxjs/internal/observable/concat.d.ts", + "../node_modules/rxjs/internal/observable/connectableobservable.d.ts", + "../node_modules/rxjs/internal/observable/defer.d.ts", + "../node_modules/rxjs/internal/observable/empty.d.ts", + "../node_modules/rxjs/internal/observable/forkjoin.d.ts", + "../node_modules/rxjs/internal/observable/from.d.ts", + "../node_modules/rxjs/internal/observable/fromevent.d.ts", + "../node_modules/rxjs/internal/observable/fromeventpattern.d.ts", + "../node_modules/rxjs/internal/observable/generate.d.ts", + "../node_modules/rxjs/internal/observable/iif.d.ts", + "../node_modules/rxjs/internal/observable/interval.d.ts", + "../node_modules/rxjs/internal/observable/merge.d.ts", + "../node_modules/rxjs/internal/observable/never.d.ts", + "../node_modules/rxjs/internal/observable/of.d.ts", + "../node_modules/rxjs/internal/observable/onerrorresumenext.d.ts", + "../node_modules/rxjs/internal/observable/pairs.d.ts", + "../node_modules/rxjs/internal/observable/partition.d.ts", + "../node_modules/rxjs/internal/observable/race.d.ts", + "../node_modules/rxjs/internal/observable/range.d.ts", + "../node_modules/rxjs/internal/observable/throwerror.d.ts", + "../node_modules/rxjs/internal/observable/timer.d.ts", + "../node_modules/rxjs/internal/observable/using.d.ts", + "../node_modules/rxjs/internal/observable/zip.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/operators/groupby.d.ts", + "../node_modules/rxjs/internal/replaysubject.d.ts", + "../node_modules/rxjs/internal/scheduled/scheduled.d.ts", + "../node_modules/rxjs/internal/scheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/animationframe.d.ts", + "../node_modules/rxjs/internal/scheduler/asap.d.ts", + "../node_modules/rxjs/internal/scheduler/async.d.ts", + "../node_modules/rxjs/internal/scheduler/queue.d.ts", + "../node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts", + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/symbol/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts", + "../node_modules/rxjs/internal/util/argumentoutofrangeerror.d.ts", + "../node_modules/rxjs/internal/util/emptyerror.d.ts", + "../node_modules/rxjs/internal/util/identity.d.ts", + "../node_modules/rxjs/internal/util/isobservable.d.ts", + "../node_modules/rxjs/internal/util/noop.d.ts", + "../node_modules/rxjs/internal/util/objectunsubscribederror.d.ts", + "../node_modules/rxjs/internal/util/pipe.d.ts", + "../node_modules/rxjs/internal/util/timeouterror.d.ts", + "../node_modules/rxjs/internal/util/unsubscriptionerror.d.ts" + ], + "../node_modules/rxjs/internal/asyncsubject.d.ts": [ + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts" + ], + "../node_modules/rxjs/internal/behaviorsubject.d.ts": [ + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts" + ], + "../node_modules/rxjs/internal/innersubscriber.d.ts": [ + "../node_modules/rxjs/internal/outersubscriber.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts" + ], + "../node_modules/rxjs/internal/notification.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable.d.ts": [ + "../node_modules/rxjs/internal/observable/iif.d.ts", + "../node_modules/rxjs/internal/observable/throwerror.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/bindcallback.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/bindnodecallback.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/combinelatest.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/outersubscriber.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/concat.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/connectableobservable.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts" + ], + "../node_modules/rxjs/internal/observable/defer.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/empty.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/forkjoin.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/from.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/fromevent.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts" + ], + "../node_modules/rxjs/internal/observable/fromeventpattern.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/observable/fromevent.d.ts" + ], + "../node_modules/rxjs/internal/observable/generate.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/iif.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/interval.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/merge.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/never.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts" + ], + "../node_modules/rxjs/internal/observable/of.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/onerrorresumenext.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/pairs.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/partition.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/race.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/outersubscriber.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/range.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/throwerror.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/timer.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/using.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/zip.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/operator.d.ts": [ + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/operators/groupby.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/outersubscriber.d.ts": [ + "../node_modules/rxjs/internal/innersubscriber.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts" + ], + "../node_modules/rxjs/internal/replaysubject.d.ts": [ + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduled/scheduled.d.ts": [ + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/rxjs/internal/scheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/action.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/action.d.ts": [ + "../node_modules/rxjs/internal/scheduler.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/animationframe.d.ts": [ + "../node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/asap.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asapscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/asapscheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/async.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts": [ + "../node_modules/rxjs/internal/scheduler/action.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/action.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/queue.d.ts": [ + "../node_modules/rxjs/internal/scheduler/queuescheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/queuescheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/subject.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/subscriber.d.ts": [ + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/subscription.d.ts": [ + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/types.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts" + ], + "../node_modules/rxjs/internal/util/isobservable.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts" + ], + "../node_modules/rxjs/internal/util/pipe.d.ts": [ + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/typeorm/cache/queryresultcache.d.ts": [ + "../node_modules/typeorm/cache/queryresultcacheoptions.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/common/entitytarget.d.ts": [ + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts": [ + "../node_modules/typeorm/cache/queryresultcache.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/types/databasetype.d.ts", + "../node_modules/typeorm/entity-schema/entityschema.d.ts", + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/logger/loggeroptions.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/connection/connection.d.ts": [ + "../node_modules/typeorm/cache/queryresultcache.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/connectionoptions.d.ts", + "../node_modules/typeorm/driver/driver.d.ts", + "../node_modules/typeorm/driver/types/isolationlevel.d.ts", + "../node_modules/typeorm/driver/types/replicationmode.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/entity-manager/sqljsentitymanager.d.ts", + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/migration/migration.d.ts", + "../node_modules/typeorm/migration/migrationinterface.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts", + "../node_modules/typeorm/query-builder/relationidloader.d.ts", + "../node_modules/typeorm/query-builder/relationloader.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/mongorepository.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts", + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts" + ], + "../node_modules/typeorm/connection/connectionmanager.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/connection/connectionoptions.d.ts" + ], + "../node_modules/typeorm/connection/connectionoptions.d.ts": [ + "../node_modules/typeorm/driver/aurora-data-api-pg/auroradataapipostgresconnectionoptions.d.ts", + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectionoptions.d.ts", + "../node_modules/typeorm/driver/better-sqlite3/bettersqlite3connectionoptions.d.ts", + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectionoptions.d.ts", + "../node_modules/typeorm/driver/cordova/cordovaconnectionoptions.d.ts", + "../node_modules/typeorm/driver/expo/expoconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mongodb/mongoconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mysql/mysqlconnectionoptions.d.ts", + "../node_modules/typeorm/driver/nativescript/nativescriptconnectionoptions.d.ts", + "../node_modules/typeorm/driver/oracle/oracleconnectionoptions.d.ts", + "../node_modules/typeorm/driver/postgres/postgresconnectionoptions.d.ts", + "../node_modules/typeorm/driver/react-native/reactnativeconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sap/sapconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqlite/sqliteconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqljs/sqljsconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectionoptions.d.ts" + ], + "../node_modules/typeorm/connection/connectionoptionsreader.d.ts": [ + "../node_modules/typeorm/connection/connectionoptions.d.ts" + ], + "../node_modules/typeorm/decorator/columns/column.d.ts": [ + "../node_modules/typeorm/decorator/options/columncommonoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnembeddedoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnenumoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnhstoreoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnnumericoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnwithlengthoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnwithwidthoptions.d.ts", + "../node_modules/typeorm/decorator/options/spatialcolumnoptions.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/createdatecolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/deletedatecolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/objectidcolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/primarycolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/primarygeneratedcolumn.d.ts": [ + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnnumericoptions.d.ts", + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnuuidoptions.d.ts" + ], + "../node_modules/typeorm/decorator/columns/updatedatecolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/versioncolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/viewcolumn.d.ts": [ + "../node_modules/typeorm/decorator/options/viewcolumnoptions.d.ts" + ], + "../node_modules/typeorm/decorator/entity-view/viewentity.d.ts": [ + "../node_modules/typeorm/decorator/options/viewentityoptions.d.ts" + ], + "../node_modules/typeorm/decorator/entity/entity.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/entity/tableinheritance.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/entityrepository.d.ts": [ + "../node_modules/typeorm/entity-schema/entityschema.d.ts" + ], + "../node_modules/typeorm/decorator/index.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/options/columncommonoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts" + ], + "../node_modules/typeorm/decorator/options/columnoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/columncommonoptions.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts" + ], + "../node_modules/typeorm/decorator/options/entityoptions.d.ts": [ + "../node_modules/typeorm/find-options/orderbycondition.d.ts" + ], + "../node_modules/typeorm/decorator/options/jointablemultiplecolumnsoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts" + ], + "../node_modules/typeorm/decorator/options/jointableoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts" + ], + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnnumericoptions.d.ts": [ + "../node_modules/typeorm/driver/types/columntypes.d.ts" + ], + "../node_modules/typeorm/decorator/options/relationoptions.d.ts": [ + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts" + ], + "../node_modules/typeorm/decorator/options/transactionoptions.d.ts": [ + "../node_modules/typeorm/driver/types/isolationlevel.d.ts" + ], + "../node_modules/typeorm/decorator/options/viewentityoptions.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/joincolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/jointable.d.ts": [ + "../node_modules/typeorm/decorator/options/jointablemultiplecolumnsoptions.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/manytomany.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/manytoone.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/onetomany.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/onetoone.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/relationcount.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/relationid.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/transaction/transaction.d.ts": [ + "../node_modules/typeorm/decorator/options/transactionoptions.d.ts" + ], + "../node_modules/typeorm/decorator/tree/tree.d.ts": [ + "../node_modules/typeorm/metadata/types/treetypes.d.ts" + ], + "../node_modules/typeorm/driver/aurora-data-api-pg/auroradataapipostgresconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/better-sqlite3/bettersqlite3connectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectioncredentialsoptions.d.ts": [ + "../node_modules/@types/node/tls.d.ts" + ], + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/cordova/cordovaconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/driver.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/driver/types/datatypedefaults.d.ts", + "../node_modules/typeorm/driver/types/mappedcolumntypes.d.ts", + "../node_modules/typeorm/driver/types/replicationmode.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/schema-builder/schemabuilder.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts" + ], + "../node_modules/typeorm/driver/expo/expoconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/mongodb/mongoconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts" + ], + "../node_modules/typeorm/driver/mongodb/mongoqueryrunner.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/driver/sqlinmemory.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/platform/platformtools.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts", + "../node_modules/typeorm/schema-builder/view/view.d.ts", + "../node_modules/typeorm/subscriber/broadcaster.d.ts" + ], + "../node_modules/typeorm/driver/mongodb/typings.d.ts": [ + "../node_modules/typeorm/platform/platformtools.d.ts" + ], + "../node_modules/typeorm/driver/mysql/mysqlconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mysql/mysqlconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/nativescript/nativescriptconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/oracle/oracleconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/oracle/oracleconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/postgres/postgresconnectioncredentialsoptions.d.ts": [ + "../node_modules/@types/node/tls.d.ts" + ], + "../node_modules/typeorm/driver/postgres/postgresconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/postgres/postgresconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/react-native/reactnativeconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/sap/sapconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sap/sapconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/sqlinmemory.d.ts": [ + "../node_modules/typeorm/driver/query.d.ts" + ], + "../node_modules/typeorm/driver/sqlite/sqliteconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/sqljs/sqljsconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/types/mappedcolumntypes.d.ts": [ + "../node_modules/typeorm/driver/types/columntypes.d.ts" + ], + "../node_modules/typeorm/entity-manager/entitymanager.d.ts": [ + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/driver/types/isolationlevel.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/transformer/plainobjecttonewentitytransformer.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/mongorepository.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts" + ], + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts": [ + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/mongodb/mongoqueryrunner.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts" + ], + "../node_modules/typeorm/entity-manager/sqljsentitymanager.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/entity-schema/entityschema.d.ts": [ + "../node_modules/typeorm/entity-schema/entityschemaoptions.d.ts" + ], + "../node_modules/typeorm/entity-schema/entityschemacolumnoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/spatialcolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts" + ], + "../node_modules/typeorm/entity-schema/entityschemaoptions.d.ts": [ + "../node_modules/typeorm/entity-schema/entityschemacheckoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemacolumnoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaexclusionoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaindexoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemarelationoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemauniqueoptions.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/types/tabletypes.d.ts" + ], + "../node_modules/typeorm/entity-schema/entityschemarelationoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/jointablemultiplecolumnsoptions.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts", + "../node_modules/typeorm/metadata/types/relationtypes.d.ts" + ], + "../node_modules/typeorm/find-options/findconditions.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/findmanyoptions.d.ts": [ + "../node_modules/typeorm/find-options/findoneoptions.d.ts" + ], + "../node_modules/typeorm/find-options/findoneoptions.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/joinoptions.d.ts" + ], + "../node_modules/typeorm/find-options/findoperator.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/find-options/findoperatortype.d.ts" + ], + "../node_modules/typeorm/find-options/findoptionsutils.d.ts": [ + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/find-options/operator/any.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/between.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/equal.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/ilike.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/in.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/isnull.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/lessthan.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/lessthanorequal.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/like.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/morethan.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/morethanorequal.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/not.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/raw.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/index.d.ts": [ + "../node_modules/reflect-metadata/index.d.ts", + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/connection/connectionmanager.d.ts", + "../node_modules/typeorm/connection/connectionoptions.d.ts", + "../node_modules/typeorm/connection/connectionoptionsreader.d.ts", + "../node_modules/typeorm/container.d.ts", + "../node_modules/typeorm/decorator/check.d.ts", + "../node_modules/typeorm/decorator/columns/column.d.ts", + "../node_modules/typeorm/decorator/columns/createdatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/deletedatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/objectidcolumn.d.ts", + "../node_modules/typeorm/decorator/columns/primarycolumn.d.ts", + "../node_modules/typeorm/decorator/columns/primarygeneratedcolumn.d.ts", + "../node_modules/typeorm/decorator/columns/updatedatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/versioncolumn.d.ts", + "../node_modules/typeorm/decorator/columns/viewcolumn.d.ts", + "../node_modules/typeorm/decorator/entity-view/viewentity.d.ts", + "../node_modules/typeorm/decorator/entity/childentity.d.ts", + "../node_modules/typeorm/decorator/entity/entity.d.ts", + "../node_modules/typeorm/decorator/entity/tableinheritance.d.ts", + "../node_modules/typeorm/decorator/entityrepository.d.ts", + "../node_modules/typeorm/decorator/exclusion.d.ts", + "../node_modules/typeorm/decorator/generated.d.ts", + "../node_modules/typeorm/decorator/index.d.ts", + "../node_modules/typeorm/decorator/listeners/afterinsert.d.ts", + "../node_modules/typeorm/decorator/listeners/afterload.d.ts", + "../node_modules/typeorm/decorator/listeners/afterremove.d.ts", + "../node_modules/typeorm/decorator/listeners/afterupdate.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeinsert.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeremove.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeupdate.d.ts", + "../node_modules/typeorm/decorator/listeners/eventsubscriber.d.ts", + "../node_modules/typeorm/decorator/options/columnoptions.d.ts", + "../node_modules/typeorm/decorator/options/entityoptions.d.ts", + "../node_modules/typeorm/decorator/options/indexoptions.d.ts", + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/jointableoptions.d.ts", + "../node_modules/typeorm/decorator/options/relationoptions.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/decorator/relations/joincolumn.d.ts", + "../node_modules/typeorm/decorator/relations/jointable.d.ts", + "../node_modules/typeorm/decorator/relations/manytomany.d.ts", + "../node_modules/typeorm/decorator/relations/manytoone.d.ts", + "../node_modules/typeorm/decorator/relations/onetomany.d.ts", + "../node_modules/typeorm/decorator/relations/onetoone.d.ts", + "../node_modules/typeorm/decorator/relations/relationcount.d.ts", + "../node_modules/typeorm/decorator/relations/relationid.d.ts", + "../node_modules/typeorm/decorator/transaction/transaction.d.ts", + "../node_modules/typeorm/decorator/transaction/transactionmanager.d.ts", + "../node_modules/typeorm/decorator/transaction/transactionrepository.d.ts", + "../node_modules/typeorm/decorator/tree/tree.d.ts", + "../node_modules/typeorm/decorator/tree/treechildren.d.ts", + "../node_modules/typeorm/decorator/tree/treelevelcolumn.d.ts", + "../node_modules/typeorm/decorator/tree/treeparent.d.ts", + "../node_modules/typeorm/decorator/unique.d.ts", + "../node_modules/typeorm/driver/driver.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/driver/sqlserver/mssqlparameter.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/driver/types/databasetype.d.ts", + "../node_modules/typeorm/driver/types/replicationmode.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/entity-manager/sqljsentitymanager.d.ts", + "../node_modules/typeorm/entity-schema/entityschema.d.ts", + "../node_modules/typeorm/entity-schema/entityschemacolumnoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaindexoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemarelationoptions.d.ts", + "../node_modules/typeorm/error/queryfailederror.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/find-options/findoperator.d.ts", + "../node_modules/typeorm/find-options/findoperatortype.d.ts", + "../node_modules/typeorm/find-options/findoptionsutils.d.ts", + "../node_modules/typeorm/find-options/joinoptions.d.ts", + "../node_modules/typeorm/find-options/operator/any.d.ts", + "../node_modules/typeorm/find-options/operator/between.d.ts", + "../node_modules/typeorm/find-options/operator/equal.d.ts", + "../node_modules/typeorm/find-options/operator/ilike.d.ts", + "../node_modules/typeorm/find-options/operator/in.d.ts", + "../node_modules/typeorm/find-options/operator/isnull.d.ts", + "../node_modules/typeorm/find-options/operator/lessthan.d.ts", + "../node_modules/typeorm/find-options/operator/lessthanorequal.d.ts", + "../node_modules/typeorm/find-options/operator/like.d.ts", + "../node_modules/typeorm/find-options/operator/morethan.d.ts", + "../node_modules/typeorm/find-options/operator/morethanorequal.d.ts", + "../node_modules/typeorm/find-options/operator/not.d.ts", + "../node_modules/typeorm/find-options/operator/raw.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/logger/advancedconsolelogger.d.ts", + "../node_modules/typeorm/logger/filelogger.d.ts", + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/logger/loggeroptions.d.ts", + "../node_modules/typeorm/logger/simpleconsolelogger.d.ts", + "../node_modules/typeorm/metadata-args/metadataargsstorage.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/migration/migration.d.ts", + "../node_modules/typeorm/migration/migrationexecutor.d.ts", + "../node_modules/typeorm/migration/migrationinterface.d.ts", + "../node_modules/typeorm/naming-strategy/defaultnamingstrategy.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/deletequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/insertquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/relationquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/updatequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/abstractrepository.d.ts", + "../node_modules/typeorm/repository/baseentity.d.ts", + "../node_modules/typeorm/repository/mongorepository.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts", + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts", + "../node_modules/typeorm/subscriber/event/insertevent.d.ts", + "../node_modules/typeorm/subscriber/event/loadevent.d.ts", + "../node_modules/typeorm/subscriber/event/removeevent.d.ts", + "../node_modules/typeorm/subscriber/event/updateevent.d.ts" + ], + "../node_modules/typeorm/logger/advancedconsolelogger.d.ts": [ + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/logger/filelogger.d.ts": [ + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/logger/loggeroptions.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/logger/logger.d.ts": [ + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/logger/simpleconsolelogger.d.ts": [ + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/metadata-args/columnmetadataargs.d.ts": [ + "../node_modules/typeorm/decorator/options/columnoptions.d.ts", + "../node_modules/typeorm/metadata-args/types/columnmode.d.ts" + ], + "../node_modules/typeorm/metadata-args/entitylistenermetadataargs.d.ts": [ + "../node_modules/typeorm/metadata/types/eventlistenertypes.d.ts" + ], + "../node_modules/typeorm/metadata-args/entityrepositorymetadataargs.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts" + ], + "../node_modules/typeorm/metadata-args/inheritancemetadataargs.d.ts": [ + "../node_modules/typeorm/decorator/options/columnoptions.d.ts" + ], + "../node_modules/typeorm/metadata-args/jointablemetadataargs.d.ts": [ + "../node_modules/typeorm/metadata-args/joincolumnmetadataargs.d.ts" + ], + "../node_modules/typeorm/metadata-args/metadataargsstorage.d.ts": [ + "../node_modules/typeorm/metadata-args/checkmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/columnmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/discriminatorvaluemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/embeddedmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entitylistenermetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entityrepositorymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entitysubscribermetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/exclusionmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/generatedmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/indexmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/inheritancemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/joincolumnmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/jointablemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/namingstrategymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationcountmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationidmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/tablemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/transactionentitymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/transactionrepositorymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/treemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/uniquemetadataargs.d.ts" + ], + "../node_modules/typeorm/metadata-args/relationcountmetadataargs.d.ts": [ + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/metadata-args/relationidmetadataargs.d.ts": [ + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/metadata-args/relationmetadataargs.d.ts": [ + "../node_modules/typeorm/decorator/options/relationoptions.d.ts", + "../node_modules/typeorm/metadata/types/propertytypeinfunction.d.ts", + "../node_modules/typeorm/metadata/types/relationtypeinfunction.d.ts", + "../node_modules/typeorm/metadata/types/relationtypes.d.ts" + ], + "../node_modules/typeorm/metadata-args/tablemetadataargs.d.ts": [ + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/types/tabletypes.d.ts" + ], + "../node_modules/typeorm/metadata-args/treemetadataargs.d.ts": [ + "../node_modules/typeorm/metadata/types/treetypes.d.ts" + ], + "../node_modules/typeorm/metadata/checkmetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/checkmetadataargs.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/metadata/columnmetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/metadata-args/columnmetadataargs.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts" + ], + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/metadata-args/embeddedmetadataargs.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitylistenermetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/indexmetadata.d.ts", + "../node_modules/typeorm/metadata/relationcountmetadata.d.ts", + "../node_modules/typeorm/metadata/relationidmetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/metadata/uniquemetadata.d.ts" + ], + "../node_modules/typeorm/metadata/entitylistenermetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata-args/entitylistenermetadataargs.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/types/eventlistenertypes.d.ts" + ], + "../node_modules/typeorm/metadata/entitymetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata-args/tablemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/treemetadataargs.d.ts", + "../node_modules/typeorm/metadata/checkmetadata.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitylistenermetadata.d.ts", + "../node_modules/typeorm/metadata/exclusionmetadata.d.ts", + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts", + "../node_modules/typeorm/metadata/indexmetadata.d.ts", + "../node_modules/typeorm/metadata/relationcountmetadata.d.ts", + "../node_modules/typeorm/metadata/relationidmetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/metadata/types/tabletypes.d.ts", + "../node_modules/typeorm/metadata/types/treetypes.d.ts", + "../node_modules/typeorm/metadata/uniquemetadata.d.ts" + ], + "../node_modules/typeorm/metadata/exclusionmetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/exclusionmetadataargs.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts": [ + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/metadata/indexmetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/indexmetadataargs.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/metadata/relationcountmetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/relationcountmetadataargs.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/metadata/relationidmetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata-args/relationidmetadataargs.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/metadata/relationmetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata-args/relationmetadataargs.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts", + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts", + "../node_modules/typeorm/metadata/types/propertytypeinfunction.d.ts", + "../node_modules/typeorm/metadata/types/relationtypes.d.ts" + ], + "../node_modules/typeorm/metadata/uniquemetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/uniquemetadataargs.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/migration/migration.d.ts": [ + "../node_modules/typeorm/migration/migrationinterface.d.ts" + ], + "../node_modules/typeorm/migration/migrationexecutor.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/migration/migration.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/migration/migrationinterface.d.ts": [ + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/naming-strategy/defaultnamingstrategy.d.ts": [ + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts" + ], + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts": [ + "../node_modules/typeorm/schema-builder/table/table.d.ts" + ], + "../node_modules/typeorm/platform/platformtools.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/typeorm/query-builder/alias.d.ts": [ + "../node_modules/typeorm/metadata/entitymetadata.d.ts" + ], + "../node_modules/typeorm/query-builder/brackets.d.ts": [ + "../node_modules/typeorm/query-builder/whereexpression.d.ts" + ], + "../node_modules/typeorm/query-builder/deletequerybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/insertquerybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts" + ], + "../node_modules/typeorm/query-builder/joinattribute.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/alias.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts" + ], + "../node_modules/typeorm/query-builder/querybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/findoperator.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/query-builder/alias.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/deletequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/insertquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/relationquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/softdeletequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/updatequerybuilder.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/alias.d.ts", + "../node_modules/typeorm/query-builder/joinattribute.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/relation-count/relationcountattribute.d.ts", + "../node_modules/typeorm/query-builder/relation-id/relationidattribute.d.ts", + "../node_modules/typeorm/query-builder/selectquery.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilderoption.d.ts" + ], + "../node_modules/typeorm/query-builder/relation-count/relationcountattribute.d.ts": [ + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/query-builder/relation-id/relationidattribute.d.ts": [ + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/query-builder/relationidloader.d.ts": [ + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts" + ], + "../node_modules/typeorm/query-builder/relationloader.d.ts": [ + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts" + ], + "../node_modules/typeorm/query-builder/relationquerybuilder.d.ts": [ + "../node_modules/typeorm/query-builder/querybuilder.d.ts" + ], + "../node_modules/typeorm/query-builder/result/insertresult.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts" + ], + "../node_modules/typeorm/query-builder/result/updateresult.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts" + ], + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/platform/platformtools.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/selectquery.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilderoption.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/softdeletequerybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/transformer/plainobjecttonewentitytransformer.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts" + ], + "../node_modules/typeorm/query-builder/updatequerybuilder.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/whereexpression.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts" + ], + "../node_modules/typeorm/query-runner/queryrunner.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/sqlinmemory.d.ts", + "../node_modules/typeorm/driver/types/isolationlevel.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/platform/platformtools.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts", + "../node_modules/typeorm/schema-builder/view/view.d.ts", + "../node_modules/typeorm/subscriber/broadcaster.d.ts" + ], + "../node_modules/typeorm/repository/abstractrepository.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts" + ], + "../node_modules/typeorm/repository/baseentity.d.ts": [ + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts" + ], + "../node_modules/typeorm/repository/mongorepository.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/repository.d.ts" + ], + "../node_modules/typeorm/repository/repository.d.ts": [ + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts" + ], + "../node_modules/typeorm/repository/treerepository.d.ts": [ + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/repository/repository.d.ts" + ], + "../node_modules/typeorm/schema-builder/options/tableoptions.d.ts": [ + "../node_modules/typeorm/schema-builder/options/tablecheckoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tablecolumnoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableexclusionoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableforeignkeyoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableindexoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableuniqueoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/options/viewoptions.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/schema-builder/schemabuilder.d.ts": [ + "../node_modules/typeorm/driver/sqlinmemory.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/table.d.ts": [ + "../node_modules/typeorm/driver/driver.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableoptions.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts": [ + "../node_modules/typeorm/metadata/checkmetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tablecheckoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts": [ + "../node_modules/typeorm/schema-builder/options/tablecolumnoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts": [ + "../node_modules/typeorm/metadata/exclusionmetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableexclusionoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts": [ + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableforeignkeyoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts": [ + "../node_modules/typeorm/metadata/indexmetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableindexoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts": [ + "../node_modules/typeorm/metadata/uniquemetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableuniqueoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/view/view.d.ts": [ + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/schema-builder/options/viewoptions.d.ts" + ], + "../node_modules/typeorm/subscriber/broadcaster.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/subscriber/broadcasterresult.d.ts", + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts" + ], + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts": [ + "../node_modules/typeorm/subscriber/event/insertevent.d.ts", + "../node_modules/typeorm/subscriber/event/loadevent.d.ts", + "../node_modules/typeorm/subscriber/event/removeevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactioncommitevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactionrollbackevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactionstartevent.d.ts", + "../node_modules/typeorm/subscriber/event/updateevent.d.ts" + ], + "../node_modules/typeorm/subscriber/event/insertevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/loadevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/removeevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/transactioncommitevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/transactionrollbackevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/transactionstartevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/updateevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/winston-transport/index.d.ts": [ + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/logform/index.d.ts" + ], + "../node_modules/winston/index.d.ts": [ + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/logform/index.d.ts", + "../node_modules/winston-transport/index.d.ts", + "../node_modules/winston/lib/winston/config/index.d.ts", + "../node_modules/winston/lib/winston/transports/index.d.ts" + ], + "../node_modules/winston/lib/winston/config/index.d.ts": [ + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/winston/lib/winston/transports/index.d.ts": [ + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/winston-transport/index.d.ts" + ], + "../src/app/app.controller.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../src/app/app.service.ts" + ], + "../src/app/app.module.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../src/app/app.controller.ts", + "../src/app/app.service.ts", + "../src/app/core/core.module.ts", + "../src/app/event/event.module.ts", + "../src/app/queue-detail/queue-detail.module.ts" + ], + "../src/app/app.service.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../src/app/core/auth/auth.module.ts": [ + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/jwt/index.d.ts", + "../node_modules/@nestjs/passport/index.d.ts", + "../src/app/core/auth/controllers/auth.controller.ts", + "../src/app/core/auth/services/auth.service.ts", + "../src/app/core/auth/strategies/jwt.strategy.ts", + "../src/app/shared/model/config/config.model.ts" + ], + "../src/app/core/auth/controllers/auth.controller.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/passport/index.d.ts", + "../src/app/core/auth/decorators/get-user.decorator.ts", + "../src/app/core/auth/services/auth.service.ts", + "../src/app/core/user/model/entities/user.entity.ts" + ], + "../src/app/core/auth/decorators/get-user.decorator.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../src/app/core/auth/decorators/roles.decorator.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../src/app/core/auth/guards/roles.guard.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/index.d.ts" + ], + "../src/app/core/auth/model/login.dto.ts": [ + "../node_modules/class-validator/index.d.ts", + "../src/app/core/user/model/entities/user.entity.ts" + ], + "../src/app/core/auth/model/user-request.interface.ts": [ + "../node_modules/@types/express/index.d.ts" + ], + "../src/app/core/auth/services/auth.service.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@types/bcrypt/index.d.ts", + "../node_modules/class-transformer/index.d.ts", + "../src/app/core/auth/model/login.dto.ts", + "../src/app/core/user/model/entities/user.entity.ts", + "../src/app/core/user/services/user.service.ts" + ], + "../src/app/core/auth/strategies/jwt.strategy.ts": [ + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/passport/index.d.ts", + "../node_modules/@types/passport-jwt/index.d.ts", + "../src/app/shared/model/config/config.model.ts" + ], + "../src/app/core/core.module.ts": [ + "../node_modules/@devon4node/common/serializer/index.d.ts", + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/index.d.ts", + "../node_modules/@nestjs/typeorm/index.d.ts", + "../src/app/core/auth/auth.module.ts", + "../src/app/core/user/user.module.ts", + "../src/app/shared/filters/business-logic.filter.ts", + "../src/app/shared/logger/winston.logger.ts", + "../src/app/shared/model/config/config.model.ts" + ], + "../src/app/core/user/model/dto/user-payload.dto.ts": [ + "../src/app/core/user/model/entities/user.entity.ts" + ], + "../src/app/core/user/model/entities/user.entity.ts": [ + "../node_modules/@nestjs/swagger/index.d.ts", + "../node_modules/@nestjsx/crud/lib/index.d.ts", + "../node_modules/class-transformer/index.d.ts", + "../node_modules/class-validator/index.d.ts", + "../node_modules/typeorm/index.d.ts", + "../src/app/core/auth/model/roles.enum.ts", + "../src/app/shared/model/entities/base-entity.entity.ts" + ], + "../src/app/core/user/services/user.service.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/index.d.ts", + "../node_modules/@types/bcrypt/index.d.ts", + "../node_modules/class-transformer/index.d.ts", + "../node_modules/typeorm/index.d.ts", + "../src/app/core/auth/model/roles.enum.ts", + "../src/app/core/user/model/entities/user.entity.ts" + ], + "../src/app/core/user/user.module.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/index.d.ts", + "../src/app/core/user/model/entities/user.entity.ts", + "../src/app/core/user/services/user.service.ts" + ], + "../src/app/event/controllers/event.crud.controller.ts": [ + "../node_modules/@devon4node/common/serializer/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/index.d.ts", + "../src/app/event/model/entities/event.entity.ts", + "../src/app/event/services/event.crud.service.ts" + ], + "../src/app/event/event.module.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/index.d.ts", + "../src/app/event/controllers/event.crud.controller.ts", + "../src/app/event/model/entities/event.entity.ts", + "../src/app/event/services/event.crud.service.ts" + ], + "../src/app/event/model/entities/event.entity.ts": [ + "../node_modules/@nestjs/swagger/index.d.ts", + "../node_modules/@nestjsx/crud/lib/index.d.ts", + "../node_modules/class-validator/index.d.ts", + "../node_modules/typeorm/index.d.ts", + "../src/app/shared/model/entities/base-entity.entity.ts" + ], + "../src/app/event/services/event.crud.service.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/index.d.ts", + "../node_modules/@nestjsx/crud-typeorm/lib/index.d.ts", + "../node_modules/typeorm/index.d.ts", + "../src/app/event/model/entities/event.entity.ts" + ], + "../src/app/queue-detail/controllers/queue-detail.crud.controller.ts": [ + "../node_modules/@devon4node/common/serializer/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/index.d.ts", + "../src/app/queue-detail/model/entities/queue-detail.entity.ts", + "../src/app/queue-detail/model/entities/queuedetail.dto.ts", + "../src/app/queue-detail/services/queue-detail.crud.service.ts" + ], + "../src/app/queue-detail/model/entities/queue-detail.entity.ts": [ + "../node_modules/@nestjs/swagger/index.d.ts", + "../node_modules/@nestjsx/crud/lib/index.d.ts", + "../node_modules/class-validator/index.d.ts", + "../node_modules/typeorm/index.d.ts", + "../src/app/core/user/model/entities/user.entity.ts", + "../src/app/event/model/entities/event.entity.ts", + "../src/app/shared/model/entities/base-entity.entity.ts" + ], + "../src/app/queue-detail/queue-detail.module.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/index.d.ts", + "../src/app/core/user/model/entities/user.entity.ts", + "../src/app/event/model/entities/event.entity.ts", + "../src/app/event/services/event.crud.service.ts", + "../src/app/queue-detail/controllers/queue-detail.crud.controller.ts", + "../src/app/queue-detail/model/entities/queue-detail.entity.ts", + "../src/app/queue-detail/services/queue-detail.crud.service.ts" + ], + "../src/app/queue-detail/services/queue-detail.crud.service.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/index.d.ts", + "../node_modules/typeorm/index.d.ts", + "../src/app/core/user/model/entities/user.entity.ts", + "../src/app/event/model/entities/event.entity.ts", + "../src/app/event/services/event.crud.service.ts", + "../src/app/queue-detail/model/entities/queue-detail.entity.ts", + "../src/app/queue-detail/model/entities/queuedetail.dto.ts" + ], + "../src/app/shared/filters/business-logic.filter.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@types/express/index.d.ts", + "../src/app/shared/exceptions/business-logic.exception.ts", + "../src/app/shared/logger/winston.logger.ts" + ], + "../src/app/shared/logger/winston.logger.ts": [ + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/winston/index.d.ts", + "../src/app/shared/model/config/config.model.ts" + ], + "../src/app/shared/model/config/config.model.ts": [ + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/jwt/index.d.ts", + "../node_modules/class-transformer/index.d.ts", + "../node_modules/class-validator/index.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../src/app/shared/model/entities/base-entity.entity.ts": [ + "../node_modules/@nestjs/swagger/index.d.ts", + "../node_modules/class-transformer/index.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../src/config/default.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/config/develop.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/config/production.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/config/test.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/config/uat.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/main.ts": [ + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/index.d.ts", + "../node_modules/@nestjs/swagger/index.d.ts", + "../node_modules/@types/helmet/index.d.ts", + "../src/app/app.module.ts", + "../src/app/shared/logger/winston.logger.ts" + ], + "../src/migration/1609823263069-createtables.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../src/migration/1609823284132-insertdata.ts": [ + "../node_modules/@types/bcrypt/index.d.ts", + "../node_modules/typeorm/index.d.ts", + "../src/app/core/auth/model/roles.enum.ts" + ] + }, + "exportedModulesMap": { + "../node_modules/@babel/parser/typings/babel-parser.d.ts": [ + "../node_modules/@babel/types/lib/index.d.ts" + ], + "../node_modules/@devon4node/common/serializer/decorators/crud-type.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/class-transformer/classtransformer.d.ts" + ], + "../node_modules/@devon4node/common/serializer/index.d.ts": [ + "../node_modules/@devon4node/common/serializer/decorators/crud-type.decorator.d.ts", + "../node_modules/@devon4node/common/serializer/interceptors/class-serializer.interceptor.d.ts" + ], + "../node_modules/@devon4node/common/serializer/interceptors/class-serializer.interceptor.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@devon4node/config/dist/config.module.d.ts": [ + "../node_modules/@devon4node/config/dist/config.types.d.ts", + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@devon4node/config/dist/config.service.d.ts": [ + "../node_modules/@devon4node/config/dist/config.types.d.ts" + ], + "../node_modules/@devon4node/config/dist/index.d.ts": [ + "../node_modules/@devon4node/config/dist/base-config.d.ts", + "../node_modules/@devon4node/config/dist/config.module.d.ts", + "../node_modules/@devon4node/config/dist/config.service.d.ts", + "../node_modules/@devon4node/config/dist/config.types.d.ts" + ], + "../node_modules/@nestjs/common/cache/cache.module.d.ts": [ + "../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts": [ + "../node_modules/@nestjs/common/decorators/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts": [ + "../node_modules/@nestjs/common/decorators/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts" + ], + "../node_modules/@nestjs/common/cache/decorators/index.d.ts": [ + "../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts", + "../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts" + ], + "../node_modules/@nestjs/common/cache/index.d.ts": [ + "../node_modules/@nestjs/common/cache/cache.constants.d.ts", + "../node_modules/@nestjs/common/cache/cache.module.d.ts", + "../node_modules/@nestjs/common/cache/decorators/index.d.ts", + "../node_modules/@nestjs/common/cache/interceptors/index.d.ts", + "../node_modules/@nestjs/common/cache/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/interceptors/index.d.ts": [ + "../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts" + ], + "../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts": [ + "../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/cache/interfaces/index.d.ts": [ + "../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts", + "../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/index.d.ts": [ + "../node_modules/@nestjs/common/decorators/core/apply-decorators.d.ts", + "../node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/dependencies.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/inject.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/optional.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/set-metadata.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/http/index.d.ts": [ + "../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/header.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/http-code.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/redirect.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/render.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/sse.decorator.d.ts" + ], + "../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts": [ + "../node_modules/@nestjs/common/enums/request-method.enum.d.ts" + ], + "../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/index.d.ts": [ + "../node_modules/@nestjs/common/decorators/core/index.d.ts", + "../node_modules/@nestjs/common/decorators/http/index.d.ts", + "../node_modules/@nestjs/common/decorators/modules/index.d.ts" + ], + "../node_modules/@nestjs/common/decorators/modules/index.d.ts": [ + "../node_modules/@nestjs/common/decorators/modules/global.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts" + ], + "../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts": [ + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts" + ], + "../node_modules/@nestjs/common/enums/index.d.ts": [ + "../node_modules/@nestjs/common/enums/http-status.enum.d.ts", + "../node_modules/@nestjs/common/enums/request-method.enum.d.ts", + "../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/gone.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/index.d.ts": [ + "../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/gone.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts": [ + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts" + ], + "../node_modules/@nestjs/common/http/http.module.d.ts": [ + "../node_modules/@nestjs/common/http/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/http/http.service.d.ts": [ + "../node_modules/axios/index.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/http/index.d.ts": [ + "../node_modules/@nestjs/common/http/http.module.d.ts", + "../node_modules/@nestjs/common/http/http.service.d.ts", + "../node_modules/@nestjs/common/http/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/http/interfaces/http-module.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/axios/index.d.ts" + ], + "../node_modules/@nestjs/common/http/interfaces/index.d.ts": [ + "../node_modules/@nestjs/common/http/interfaces/http-module.interface.d.ts" + ], + "../node_modules/@nestjs/common/index.d.ts": [ + "../node_modules/@nestjs/common/cache/index.d.ts", + "../node_modules/@nestjs/common/decorators/index.d.ts", + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/exceptions/index.d.ts", + "../node_modules/@nestjs/common/http/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/pipes/index.d.ts", + "../node_modules/@nestjs/common/serializer/index.d.ts", + "../node_modules/@nestjs/common/services/index.d.ts", + "../node_modules/@nestjs/common/utils/index.d.ts", + "../node_modules/reflect-metadata/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/hooks/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-init.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts": [ + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/http/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/http/message-event.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/validation-error.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/index.d.ts", + "../node_modules/@nestjs/common/interfaces/http/index.d.ts", + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/index.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/index.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/middleware/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts": [ + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/index.d.ts": [ + "../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts": [ + "../node_modules/@nestjs/common/services/logger.service.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts": [ + "../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts", + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/common/services/logger.service.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/https-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts" + ], + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts": [ + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/common/pipes/index.d.ts": [ + "../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/validation.pipe.d.ts" + ], + "../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/pipes/validation.pipe.d.ts" + ], + "../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts" + ], + "../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts" + ], + "../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts" + ], + "../node_modules/@nestjs/common/pipes/validation.pipe.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/validator-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts" + ], + "../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts": [ + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjs/common/serializer/decorators/index.d.ts": [ + "../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts" + ], + "../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts": [ + "../node_modules/@nestjs/common/decorators/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts" + ], + "../node_modules/@nestjs/common/serializer/index.d.ts": [ + "../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts", + "../node_modules/@nestjs/common/serializer/decorators/index.d.ts" + ], + "../node_modules/@nestjs/common/services/index.d.ts": [ + "../node_modules/@nestjs/common/services/logger.service.d.ts" + ], + "../node_modules/@nestjs/common/utils/forward-ref.util.d.ts": [ + "../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts" + ], + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts": [ + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/common/utils/index.d.ts": [ + "../node_modules/@nestjs/common/utils/forward-ref.util.d.ts" + ], + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts" + ], + "../node_modules/@nestjs/core/adapters/index.d.ts": [ + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts" + ], + "../node_modules/@nestjs/core/application-config.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts" + ], + "../node_modules/@nestjs/core/discovery/discovery-service.d.ts": [ + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts", + "../node_modules/@nestjs/core/injector/modules-container.d.ts" + ], + "../node_modules/@nestjs/core/discovery/index.d.ts": [ + "../node_modules/@nestjs/core/discovery/discovery-module.d.ts", + "../node_modules/@nestjs/core/discovery/discovery-service.d.ts" + ], + "../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/adapters/index.d.ts", + "../node_modules/@nestjs/core/helpers/index.d.ts" + ], + "../node_modules/@nestjs/core/exceptions/index.d.ts": [ + "../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts" + ], + "../node_modules/@nestjs/core/helpers/context-id-factory.d.ts": [ + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts" + ], + "../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts": [ + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts" + ], + "../node_modules/@nestjs/core/helpers/index.d.ts": [ + "../node_modules/@nestjs/core/helpers/context-id-factory.d.ts", + "../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts" + ], + "../node_modules/@nestjs/core/index.d.ts": [ + "../node_modules/@nestjs/core/adapters/index.d.ts", + "../node_modules/@nestjs/core/application-config.d.ts", + "../node_modules/@nestjs/core/constants.d.ts", + "../node_modules/@nestjs/core/discovery/index.d.ts", + "../node_modules/@nestjs/core/exceptions/index.d.ts", + "../node_modules/@nestjs/core/helpers/index.d.ts", + "../node_modules/@nestjs/core/injector/index.d.ts", + "../node_modules/@nestjs/core/metadata-scanner.d.ts", + "../node_modules/@nestjs/core/middleware/index.d.ts", + "../node_modules/@nestjs/core/nest-application-context.d.ts", + "../node_modules/@nestjs/core/nest-application.d.ts", + "../node_modules/@nestjs/core/nest-factory.d.ts", + "../node_modules/@nestjs/core/router/index.d.ts", + "../node_modules/@nestjs/core/services/index.d.ts", + "../node_modules/reflect-metadata/index.d.ts" + ], + "../node_modules/@nestjs/core/injector/container.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/core/application-config.d.ts", + "../node_modules/@nestjs/core/index.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module-token-factory.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts", + "../node_modules/@nestjs/core/injector/modules-container.d.ts" + ], + "../node_modules/@nestjs/core/injector/index.d.ts": [ + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/inquirer/index.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module-ref.d.ts", + "../node_modules/@nestjs/core/injector/modules-container.d.ts" + ], + "../node_modules/@nestjs/core/injector/injector.d.ts": [ + "../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/injector/inquirer/index.d.ts": [ + "../node_modules/@nestjs/core/injector/inquirer/inquirer-constants.d.ts" + ], + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/injector/module-ref.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/injector/module-token-factory.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/core/injector/module.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module-ref.d.ts" + ], + "../node_modules/@nestjs/core/injector/modules-container.d.ts": [ + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/metadata-scanner.d.ts": [ + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts" + ], + "../node_modules/@nestjs/core/middleware/builder.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/index.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts", + "../node_modules/@nestjs/core/middleware/routes-mapper.d.ts" + ], + "../node_modules/@nestjs/core/middleware/index.d.ts": [ + "../node_modules/@nestjs/core/middleware/builder.d.ts" + ], + "../node_modules/@nestjs/core/middleware/routes-mapper.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts" + ], + "../node_modules/@nestjs/core/nest-application-context.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/index.d.ts", + "../node_modules/@nestjs/core/injector/injector.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts" + ], + "../node_modules/@nestjs/core/nest-application.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts", + "../node_modules/@nestjs/core/adapters/index.d.ts", + "../node_modules/@nestjs/core/application-config.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/nest-application-context.d.ts" + ], + "../node_modules/@nestjs/core/nest-factory.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts", + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts" + ], + "../node_modules/@nestjs/core/router/index.d.ts": [ + "../node_modules/@nestjs/core/router/request/index.d.ts" + ], + "../node_modules/@nestjs/core/router/request/index.d.ts": [ + "../node_modules/@nestjs/core/router/request/request-constants.d.ts" + ], + "../node_modules/@nestjs/core/services/index.d.ts": [ + "../node_modules/@nestjs/core/services/reflector.service.d.ts" + ], + "../node_modules/@nestjs/core/services/reflector.service.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/index.d.ts": [ + "../node_modules/@nestjs/jwt/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/jwt/dist/jwt.module.d.ts", + "../node_modules/@nestjs/jwt/dist/jwt.service.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/interfaces/index.d.ts": [ + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@types/jsonwebtoken/index.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/jwt.module.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts" + ], + "../node_modules/@nestjs/jwt/dist/jwt.service.d.ts": [ + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts", + "../node_modules/@types/jsonwebtoken/index.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@nestjs/jwt/index.d.ts": [ + "../node_modules/@nestjs/jwt/dist/index.d.ts" + ], + "../node_modules/@nestjs/passport/dist/auth.guard.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/passport/dist/index.d.ts": [ + "../node_modules/@nestjs/passport/dist/abstract.strategy.d.ts", + "../node_modules/@nestjs/passport/dist/auth.guard.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/passport/dist/passport.module.d.ts", + "../node_modules/@nestjs/passport/dist/passport/passport.serializer.d.ts", + "../node_modules/@nestjs/passport/dist/passport/passport.strategy.d.ts" + ], + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts": [ + "../node_modules/@nestjs/common/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts": [ + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/type.interface.d.ts" + ], + "../node_modules/@nestjs/passport/dist/passport.module.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts" + ], + "../node_modules/@nestjs/passport/dist/passport/passport.serializer.d.ts": [ + "../node_modules/@types/passport/index.d.ts" + ], + "../node_modules/@nestjs/passport/dist/passport/passport.strategy.d.ts": [ + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/passport/index.d.ts": [ + "../node_modules/@nestjs/passport/dist/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-body.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-header.decorator.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-operation.decorator.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-param.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/schema-object-metadata.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-query.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/api-response.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/decorators/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/decorators/api-basic.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-bearer.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-body.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-consumes.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-cookie.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-exclude-endpoint.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-extension.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-extra-models.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-header.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-hide-property.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-oauth2.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-operation.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-param.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-produces.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-query.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-response.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-security.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-use-tags.decorator.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/document-builder.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/decorators/index.d.ts", + "../node_modules/@nestjs/swagger/dist/document-builder.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/swagger/dist/swagger-module.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/index.d.ts", + "../node_modules/@nestjs/swagger/dist/utils/index.d.ts", + "../node_modules/reflect-metadata/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/swagger-custom-options.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/swagger-document-options.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/interfaces/schema-object-metadata.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/swagger-module.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/type-helpers/intersection-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/omit-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/partial-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/pick-type.helper.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/intersection-type.helper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/omit-type.helper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/partial-type.helper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/type-helpers/pick-type.helper.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjs/swagger/dist/utils/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/utils/get-schema-path.util.d.ts" + ], + "../node_modules/@nestjs/swagger/index.d.ts": [ + "../node_modules/@nestjs/swagger/dist/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/common/index.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/common/typeorm.decorators.d.ts", + "../node_modules/@nestjs/typeorm/dist/common/typeorm.utils.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/common/typeorm.decorators.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/common/typeorm.utils.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts", + "../node_modules/rxjs/index.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/index.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/common/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/typeorm.module.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/interfaces/index.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/interfaces/typeorm-options.interface.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/interfaces/typeorm-options.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/dist/typeorm.module.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/typeorm-options.interface.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjs/typeorm/index.d.ts": [ + "../node_modules/@nestjs/typeorm/dist/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/exceptions/index.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/exceptions/request-query.exception.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/index.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/exceptions/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/request-query.builder.d.ts", + "../node_modules/@nestjsx/crud-request/lib/request-query.parser.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/interfaces/create-query-params.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/interfaces/create-query-params.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/parsed-request.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/request-query-builder-options.interface.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/interfaces/params-options.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/interfaces/parsed-request.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts", + "../node_modules/@nestjsx/util/lib/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/request-query.builder.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/request-query.parser.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts", + "../node_modules/@nestjsx/util/lib/index.d.ts" + ], + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/request-param.types.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts" + ], + "../node_modules/@nestjsx/crud-typeorm/lib/index.d.ts": [ + "../node_modules/@nestjsx/crud-typeorm/lib/typeorm-crud.service.d.ts" + ], + "../node_modules/@nestjsx/crud-typeorm/lib/typeorm-crud.service.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/index.d.ts", + "../node_modules/class-transformer/classtransformer.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/crud-auth.decorator.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/crud.decorator.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/feature-action.decorator.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/decorators/crud-auth.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/crud.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/feature-action.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/override.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/parsed-body.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/parsed-request.decorator.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/decorators/override.decorator.d.ts": [ + "../node_modules/@nestjsx/crud/lib/types/base-route-name.type.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/enums/crud-actions.enum.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/crud-validation-groups.enum.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/decorators/index.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud/lib/module/index.d.ts", + "../node_modules/@nestjsx/crud/lib/services/index.d.ts", + "../node_modules/@nestjsx/crud/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interceptors/crud-base.interceptor.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interceptors/crud-request.interceptor.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-base.interceptor.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interceptors/crud-response.interceptor.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-base.interceptor.d.ts", + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interceptors/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interceptors/crud-request.interceptor.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-response.interceptor.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts", + "../node_modules/@nestjsx/util/lib/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/base-route.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/crud-controller.interface.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud/lib/services/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/crud-global-config.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/crud-options.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/dto-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/model-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/query-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/serialize-options.interface.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/crud-request.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/base-route.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/create-many-dto.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-controller.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-global-config.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-request.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/dto-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/get-many-default-response.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/model-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/query-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/serialize-options.interface.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts": [ + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts", + "../node_modules/@nestjsx/crud-request/lib/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/query-options.interface.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts", + "../node_modules/@nestjsx/crud/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts": [ + "../node_modules/@nestjsx/crud/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/interfaces/serialize-options.interface.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/module/crud-config.service.d.ts": [ + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/module/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/module/crud-config.service.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/services/crud-service.abstract.d.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/services/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/services/crud-service.abstract.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/types/index.d.ts": [ + "../node_modules/@nestjsx/crud/lib/types/base-route-name.type.d.ts", + "../node_modules/@nestjsx/crud/lib/types/query-filter-option.type.d.ts" + ], + "../node_modules/@nestjsx/crud/lib/types/query-filter-option.type.d.ts": [ + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts" + ], + "../node_modules/@nestjsx/util/lib/index.d.ts": [ + "../node_modules/@nestjsx/util/lib/checks.util.d.ts", + "../node_modules/@nestjsx/util/lib/obj.util.d.ts", + "../node_modules/@nestjsx/util/lib/types/index.d.ts" + ], + "../node_modules/@nestjsx/util/lib/types/index.d.ts": [ + "../node_modules/@nestjsx/util/lib/types/object-literal.type.d.ts" + ], + "../node_modules/@types/babel__core/index.d.ts": [ + "../node_modules/@babel/parser/typings/babel-parser.d.ts", + "../node_modules/@babel/types/lib/index.d.ts", + "../node_modules/@types/babel__generator/index.d.ts", + "../node_modules/@types/babel__template/index.d.ts", + "../node_modules/@types/babel__traverse/index.d.ts" + ], + "../node_modules/@types/babel__generator/index.d.ts": [ + "../node_modules/@babel/types/lib/index.d.ts" + ], + "../node_modules/@types/babel__template/index.d.ts": [ + "../node_modules/@babel/parser/typings/babel-parser.d.ts", + "../node_modules/@babel/types/lib/index.d.ts" + ], + "../node_modules/@types/babel__traverse/index.d.ts": [ + "../node_modules/@babel/types/lib/index.d.ts" + ], + "../node_modules/@types/body-parser/index.d.ts": [ + "../node_modules/@types/connect/index.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/connect/index.d.ts": [ + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/eslint-scope/index.d.ts": [ + "../node_modules/@types/eslint/index.d.ts", + "../node_modules/@types/estree/index.d.ts" + ], + "../node_modules/@types/eslint/index.d.ts": [ + "../node_modules/@types/eslint/helpers.d.ts", + "../node_modules/@types/estree/index.d.ts", + "../node_modules/@types/json-schema/index.d.ts" + ], + "../node_modules/@types/express-serve-static-core/index.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/qs/index.d.ts", + "../node_modules/@types/range-parser/index.d.ts" + ], + "../node_modules/@types/express/index.d.ts": [ + "../node_modules/@types/body-parser/index.d.ts", + "../node_modules/@types/express-serve-static-core/index.d.ts", + "../node_modules/@types/qs/index.d.ts", + "../node_modules/@types/serve-static/index.d.ts" + ], + "../node_modules/@types/graceful-fs/index.d.ts": [ + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/helmet/index.d.ts": [ + "../node_modules/@types/express/index.d.ts" + ], + "../node_modules/@types/istanbul-lib-report/index.d.ts": [ + "../node_modules/@types/istanbul-lib-coverage/index.d.ts" + ], + "../node_modules/@types/istanbul-reports/index.d.ts": [ + "../node_modules/@types/istanbul-lib-report/index.d.ts" + ], + "../node_modules/@types/jest/index.d.ts": [ + "../node_modules/jest-diff/build/index.d.ts", + "../node_modules/pretty-format/build/index.d.ts" + ], + "../node_modules/@types/jsonwebtoken/index.d.ts": [ + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/lodash/common/array.d.ts": [ + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/collection.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/common.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/date.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/function.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/lang.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/math.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/number.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/object.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/seq.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/string.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/common/util.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/index.d.ts" + ], + "../node_modules/@types/lodash/index.d.ts": [ + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts" + ], + "../node_modules/@types/node/base.d.ts": [ + "../node_modules/@types/node/assert.d.ts", + "../node_modules/@types/node/ts3.6/base.d.ts" + ], + "../node_modules/@types/node/child_process.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/cluster.d.ts": [ + "../node_modules/@types/node/child_process.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/net.d.ts" + ], + "../node_modules/@types/node/console.d.ts": [ + "../node_modules/@types/node/util.d.ts" + ], + "../node_modules/@types/node/constants.d.ts": [ + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/os.d.ts" + ], + "../node_modules/@types/node/crypto.d.ts": [ + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/dgram.d.ts": [ + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/net.d.ts" + ], + "../node_modules/@types/node/domain.d.ts": [ + "../node_modules/@types/node/events.d.ts" + ], + "../node_modules/@types/node/fs.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs/promises.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/fs/promises.d.ts": [ + "../node_modules/@types/node/fs.d.ts" + ], + "../node_modules/@types/node/http.d.ts": [ + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/http2.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/tls.d.ts", + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/https.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/tls.d.ts", + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/index.d.ts": [ + "../node_modules/@types/node/base.d.ts" + ], + "../node_modules/@types/node/inspector.d.ts": [ + "../node_modules/@types/node/events.d.ts" + ], + "../node_modules/@types/node/module.d.ts": [ + "../node_modules/@types/node/url.d.ts" + ], + "../node_modules/@types/node/net.d.ts": [ + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/perf_hooks.d.ts": [ + "../node_modules/@types/node/async_hooks.d.ts" + ], + "../node_modules/@types/node/process.d.ts": [ + "../node_modules/@types/node/tty.d.ts" + ], + "../node_modules/@types/node/readline.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/repl.d.ts": [ + "../node_modules/@types/node/readline.d.ts", + "../node_modules/@types/node/util.d.ts", + "../node_modules/@types/node/vm.d.ts" + ], + "../node_modules/@types/node/stream.d.ts": [ + "../node_modules/@types/node/events.d.ts" + ], + "../node_modules/@types/node/tls.d.ts": [ + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/ts3.4/base.d.ts": [ + "../node_modules/@types/node/async_hooks.d.ts", + "../node_modules/@types/node/buffer.d.ts", + "../node_modules/@types/node/child_process.d.ts", + "../node_modules/@types/node/cluster.d.ts", + "../node_modules/@types/node/console.d.ts", + "../node_modules/@types/node/constants.d.ts", + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/dgram.d.ts", + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/domain.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/fs/promises.d.ts", + "../node_modules/@types/node/globals.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/http2.d.ts", + "../node_modules/@types/node/https.d.ts", + "../node_modules/@types/node/inspector.d.ts", + "../node_modules/@types/node/module.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/os.d.ts", + "../node_modules/@types/node/path.d.ts", + "../node_modules/@types/node/perf_hooks.d.ts", + "../node_modules/@types/node/process.d.ts", + "../node_modules/@types/node/punycode.d.ts", + "../node_modules/@types/node/querystring.d.ts", + "../node_modules/@types/node/readline.d.ts", + "../node_modules/@types/node/repl.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/string_decoder.d.ts", + "../node_modules/@types/node/timers.d.ts", + "../node_modules/@types/node/tls.d.ts", + "../node_modules/@types/node/trace_events.d.ts", + "../node_modules/@types/node/tty.d.ts", + "../node_modules/@types/node/url.d.ts", + "../node_modules/@types/node/util.d.ts", + "../node_modules/@types/node/v8.d.ts", + "../node_modules/@types/node/vm.d.ts", + "../node_modules/@types/node/worker_threads.d.ts", + "../node_modules/@types/node/zlib.d.ts" + ], + "../node_modules/@types/node/ts3.6/base.d.ts": [ + "../node_modules/@types/node/globals.global.d.ts", + "../node_modules/@types/node/ts3.4/base.d.ts", + "../node_modules/@types/node/wasi.d.ts" + ], + "../node_modules/@types/node/tty.d.ts": [ + "../node_modules/@types/node/net.d.ts" + ], + "../node_modules/@types/node/url.d.ts": [ + "../node_modules/@types/node/querystring.d.ts" + ], + "../node_modules/@types/node/v8.d.ts": [ + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/node/worker_threads.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs/promises.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/url.d.ts", + "../node_modules/@types/node/vm.d.ts" + ], + "../node_modules/@types/node/zlib.d.ts": [ + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/passport-jwt/index.d.ts": [ + "../node_modules/@types/express/index.d.ts", + "../node_modules/@types/jsonwebtoken/index.d.ts", + "../node_modules/@types/passport-strategy/index.d.ts" + ], + "../node_modules/@types/passport-strategy/index.d.ts": [ + "../node_modules/@types/express/index.d.ts", + "../node_modules/@types/passport/index.d.ts" + ], + "../node_modules/@types/passport/index.d.ts": [ + "../node_modules/@types/express/index.d.ts", + "../node_modules/@types/node/http.d.ts" + ], + "../node_modules/@types/serve-static/index.d.ts": [ + "../node_modules/@types/mime/index.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/@types/superagent/index.d.ts": [ + "../node_modules/@types/cookiejar/index.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/@types/supertest/index.d.ts": [ + "../node_modules/@types/superagent/index.d.ts" + ], + "../node_modules/@types/uglify-js/index.d.ts": [ + "../node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/index.d.ts": [ + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/webpack-sources/lib/cachedsource.d.ts", + "../node_modules/@types/webpack-sources/lib/compatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/concatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/originalsource.d.ts", + "../node_modules/@types/webpack-sources/lib/prefixsource.d.ts", + "../node_modules/@types/webpack-sources/lib/rawsource.d.ts", + "../node_modules/@types/webpack-sources/lib/replacesource.d.ts", + "../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/cachedsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/compatsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/concatsource.d.ts": [ + "../node_modules/@types/source-list-map/index.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/index.d.ts": [ + "../node_modules/@types/webpack-sources/lib/cachedsource.d.ts", + "../node_modules/@types/webpack-sources/lib/compatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/concatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/originalsource.d.ts", + "../node_modules/@types/webpack-sources/lib/prefixsource.d.ts", + "../node_modules/@types/webpack-sources/lib/rawsource.d.ts", + "../node_modules/@types/webpack-sources/lib/replacesource.d.ts", + "../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/originalsource.d.ts": [ + "../node_modules/@types/source-list-map/index.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/prefixsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/rawsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/replacesource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/source.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/source.d.ts": [ + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts": [ + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/webpack/index.d.ts": [ + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/tapable/index.d.ts", + "../node_modules/@types/uglify-js/index.d.ts", + "../node_modules/@types/webpack-sources/index.d.ts", + "../node_modules/anymatch/index.d.ts", + "../node_modules/source-map/source-map.d.ts" + ], + "../node_modules/@types/yargs/index.d.ts": [ + "../node_modules/@types/yargs-parser/index.d.ts" + ], + "../node_modules/class-transformer/classtransformer.d.ts": [ + "../node_modules/class-transformer/classtransformoptions.d.ts" + ], + "../node_modules/class-transformer/decorators.d.ts": [ + "../node_modules/class-transformer/classtransformoptions.d.ts", + "../node_modules/class-transformer/metadata/exposeexcludeoptions.d.ts", + "../node_modules/class-transformer/transformoperationexecutor.d.ts" + ], + "../node_modules/class-transformer/index.d.ts": [ + "../node_modules/class-transformer/classtransformer.d.ts", + "../node_modules/class-transformer/classtransformoptions.d.ts", + "../node_modules/class-transformer/decorators.d.ts", + "../node_modules/class-transformer/metadata/exposeexcludeoptions.d.ts" + ], + "../node_modules/class-transformer/metadata/typemetadata.d.ts": [ + "../node_modules/class-transformer/metadata/exposeexcludeoptions.d.ts" + ], + "../node_modules/class-transformer/transformoperationexecutor.d.ts": [ + "../node_modules/class-transformer/classtransformoptions.d.ts", + "../node_modules/class-transformer/metadata/typemetadata.d.ts" + ], + "../node_modules/class-validator/decorator/decorators.d.ts": [ + "../node_modules/@types/validator/index.d.ts", + "../node_modules/class-validator/decorator/validationoptions.d.ts", + "../node_modules/class-validator/validation/validationtypeoptions.d.ts" + ], + "../node_modules/class-validator/decorator/validationoptions.d.ts": [ + "../node_modules/class-validator/validation/validationarguments.d.ts" + ], + "../node_modules/class-validator/index.d.ts": [ + "../node_modules/class-validator/container.d.ts", + "../node_modules/class-validator/decorator/decorators.d.ts", + "../node_modules/class-validator/decorator/validationoptions.d.ts", + "../node_modules/class-validator/metadata/metadatastorage.d.ts", + "../node_modules/class-validator/register-decorator.d.ts", + "../node_modules/class-validator/validation-schema/validationschema.d.ts", + "../node_modules/class-validator/validation/validationarguments.d.ts", + "../node_modules/class-validator/validation/validationerror.d.ts", + "../node_modules/class-validator/validation/validationtypeoptions.d.ts", + "../node_modules/class-validator/validation/validationtypes.d.ts", + "../node_modules/class-validator/validation/validator.d.ts", + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts", + "../node_modules/class-validator/validation/validatoroptions.d.ts" + ], + "../node_modules/class-validator/metadata/constraintmetadata.d.ts": [ + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts" + ], + "../node_modules/class-validator/metadata/metadatastorage.d.ts": [ + "../node_modules/class-validator/metadata/constraintmetadata.d.ts", + "../node_modules/class-validator/metadata/validationmetadata.d.ts", + "../node_modules/class-validator/validation-schema/validationschema.d.ts" + ], + "../node_modules/class-validator/metadata/validationmetadata.d.ts": [ + "../node_modules/class-validator/metadata/validationmetadataargs.d.ts", + "../node_modules/class-validator/validation/validationarguments.d.ts" + ], + "../node_modules/class-validator/metadata/validationmetadataargs.d.ts": [ + "../node_modules/class-validator/decorator/validationoptions.d.ts" + ], + "../node_modules/class-validator/register-decorator.d.ts": [ + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts", + "../node_modules/class-validator/validation/validatoroptions.d.ts" + ], + "../node_modules/class-validator/validation/validationtypes.d.ts": [ + "../node_modules/class-validator/validation/validationarguments.d.ts" + ], + "../node_modules/class-validator/validation/validator.d.ts": [ + "../node_modules/@types/validator/index.d.ts", + "../node_modules/class-validator/metadata/validationmetadata.d.ts", + "../node_modules/class-validator/validation/validationerror.d.ts", + "../node_modules/class-validator/validation/validationtypeoptions.d.ts", + "../node_modules/class-validator/validation/validatoroptions.d.ts" + ], + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts": [ + "../node_modules/class-validator/validation/validationarguments.d.ts" + ], + "../node_modules/jest-diff/build/difflines.d.ts": [ + "../node_modules/jest-diff/build/cleanupsemantic.d.ts", + "../node_modules/jest-diff/build/types.d.ts" + ], + "../node_modules/jest-diff/build/index.d.ts": [ + "../node_modules/jest-diff/build/cleanupsemantic.d.ts", + "../node_modules/jest-diff/build/difflines.d.ts", + "../node_modules/jest-diff/build/printdiffs.d.ts", + "../node_modules/jest-diff/build/types.d.ts" + ], + "../node_modules/jest-diff/build/printdiffs.d.ts": [ + "../node_modules/jest-diff/build/cleanupsemantic.d.ts", + "../node_modules/jest-diff/build/types.d.ts" + ], + "../node_modules/pretty-format/build/index.d.ts": [ + "../node_modules/pretty-format/build/types.d.ts" + ], + "../node_modules/rxjs/index.d.ts": [ + "../node_modules/rxjs/internal/asyncsubject.d.ts", + "../node_modules/rxjs/internal/behaviorsubject.d.ts", + "../node_modules/rxjs/internal/config.d.ts", + "../node_modules/rxjs/internal/notification.d.ts", + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/observable/bindcallback.d.ts", + "../node_modules/rxjs/internal/observable/bindnodecallback.d.ts", + "../node_modules/rxjs/internal/observable/combinelatest.d.ts", + "../node_modules/rxjs/internal/observable/concat.d.ts", + "../node_modules/rxjs/internal/observable/connectableobservable.d.ts", + "../node_modules/rxjs/internal/observable/defer.d.ts", + "../node_modules/rxjs/internal/observable/empty.d.ts", + "../node_modules/rxjs/internal/observable/forkjoin.d.ts", + "../node_modules/rxjs/internal/observable/from.d.ts", + "../node_modules/rxjs/internal/observable/fromevent.d.ts", + "../node_modules/rxjs/internal/observable/fromeventpattern.d.ts", + "../node_modules/rxjs/internal/observable/generate.d.ts", + "../node_modules/rxjs/internal/observable/iif.d.ts", + "../node_modules/rxjs/internal/observable/interval.d.ts", + "../node_modules/rxjs/internal/observable/merge.d.ts", + "../node_modules/rxjs/internal/observable/never.d.ts", + "../node_modules/rxjs/internal/observable/of.d.ts", + "../node_modules/rxjs/internal/observable/onerrorresumenext.d.ts", + "../node_modules/rxjs/internal/observable/pairs.d.ts", + "../node_modules/rxjs/internal/observable/partition.d.ts", + "../node_modules/rxjs/internal/observable/race.d.ts", + "../node_modules/rxjs/internal/observable/range.d.ts", + "../node_modules/rxjs/internal/observable/throwerror.d.ts", + "../node_modules/rxjs/internal/observable/timer.d.ts", + "../node_modules/rxjs/internal/observable/using.d.ts", + "../node_modules/rxjs/internal/observable/zip.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/operators/groupby.d.ts", + "../node_modules/rxjs/internal/replaysubject.d.ts", + "../node_modules/rxjs/internal/scheduled/scheduled.d.ts", + "../node_modules/rxjs/internal/scheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/animationframe.d.ts", + "../node_modules/rxjs/internal/scheduler/asap.d.ts", + "../node_modules/rxjs/internal/scheduler/async.d.ts", + "../node_modules/rxjs/internal/scheduler/queue.d.ts", + "../node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts", + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/symbol/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts", + "../node_modules/rxjs/internal/util/argumentoutofrangeerror.d.ts", + "../node_modules/rxjs/internal/util/emptyerror.d.ts", + "../node_modules/rxjs/internal/util/identity.d.ts", + "../node_modules/rxjs/internal/util/isobservable.d.ts", + "../node_modules/rxjs/internal/util/noop.d.ts", + "../node_modules/rxjs/internal/util/objectunsubscribederror.d.ts", + "../node_modules/rxjs/internal/util/pipe.d.ts", + "../node_modules/rxjs/internal/util/timeouterror.d.ts", + "../node_modules/rxjs/internal/util/unsubscriptionerror.d.ts" + ], + "../node_modules/rxjs/internal/asyncsubject.d.ts": [ + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts" + ], + "../node_modules/rxjs/internal/behaviorsubject.d.ts": [ + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts" + ], + "../node_modules/rxjs/internal/innersubscriber.d.ts": [ + "../node_modules/rxjs/internal/outersubscriber.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts" + ], + "../node_modules/rxjs/internal/notification.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable.d.ts": [ + "../node_modules/rxjs/internal/observable/iif.d.ts", + "../node_modules/rxjs/internal/observable/throwerror.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/bindcallback.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/bindnodecallback.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/combinelatest.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/outersubscriber.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/concat.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/connectableobservable.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts" + ], + "../node_modules/rxjs/internal/observable/defer.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/empty.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/forkjoin.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/from.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/fromevent.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts" + ], + "../node_modules/rxjs/internal/observable/fromeventpattern.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/observable/fromevent.d.ts" + ], + "../node_modules/rxjs/internal/observable/generate.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/iif.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/interval.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/merge.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/never.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts" + ], + "../node_modules/rxjs/internal/observable/of.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/onerrorresumenext.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/pairs.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/partition.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/race.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/outersubscriber.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/range.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/throwerror.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/timer.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/using.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/observable/zip.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/operator.d.ts": [ + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/operators/groupby.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/outersubscriber.d.ts": [ + "../node_modules/rxjs/internal/innersubscriber.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts" + ], + "../node_modules/rxjs/internal/replaysubject.d.ts": [ + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduled/scheduled.d.ts": [ + "../node_modules/rxjs/index.d.ts" + ], + "../node_modules/rxjs/internal/scheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/action.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/action.d.ts": [ + "../node_modules/rxjs/internal/scheduler.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/animationframe.d.ts": [ + "../node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/asap.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asapscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/asapscheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/async.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts": [ + "../node_modules/rxjs/internal/scheduler/action.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/action.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/queue.d.ts": [ + "../node_modules/rxjs/internal/scheduler/queuescheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/queuescheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts" + ], + "../node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts": [ + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/subject.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/subscriber.d.ts": [ + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/subscription.d.ts": [ + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/rxjs/internal/types.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts" + ], + "../node_modules/rxjs/internal/util/isobservable.d.ts": [ + "../node_modules/rxjs/internal/observable.d.ts" + ], + "../node_modules/rxjs/internal/util/pipe.d.ts": [ + "../node_modules/rxjs/internal/types.d.ts" + ], + "../node_modules/typeorm/cache/queryresultcache.d.ts": [ + "../node_modules/typeorm/cache/queryresultcacheoptions.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/common/entitytarget.d.ts": [ + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts": [ + "../node_modules/typeorm/cache/queryresultcache.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/types/databasetype.d.ts", + "../node_modules/typeorm/entity-schema/entityschema.d.ts", + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/logger/loggeroptions.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/connection/connection.d.ts": [ + "../node_modules/typeorm/cache/queryresultcache.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/connectionoptions.d.ts", + "../node_modules/typeorm/driver/driver.d.ts", + "../node_modules/typeorm/driver/types/isolationlevel.d.ts", + "../node_modules/typeorm/driver/types/replicationmode.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/entity-manager/sqljsentitymanager.d.ts", + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/migration/migration.d.ts", + "../node_modules/typeorm/migration/migrationinterface.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts", + "../node_modules/typeorm/query-builder/relationidloader.d.ts", + "../node_modules/typeorm/query-builder/relationloader.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/mongorepository.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts", + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts" + ], + "../node_modules/typeorm/connection/connectionmanager.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/connection/connectionoptions.d.ts" + ], + "../node_modules/typeorm/connection/connectionoptions.d.ts": [ + "../node_modules/typeorm/driver/aurora-data-api-pg/auroradataapipostgresconnectionoptions.d.ts", + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectionoptions.d.ts", + "../node_modules/typeorm/driver/better-sqlite3/bettersqlite3connectionoptions.d.ts", + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectionoptions.d.ts", + "../node_modules/typeorm/driver/cordova/cordovaconnectionoptions.d.ts", + "../node_modules/typeorm/driver/expo/expoconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mongodb/mongoconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mysql/mysqlconnectionoptions.d.ts", + "../node_modules/typeorm/driver/nativescript/nativescriptconnectionoptions.d.ts", + "../node_modules/typeorm/driver/oracle/oracleconnectionoptions.d.ts", + "../node_modules/typeorm/driver/postgres/postgresconnectionoptions.d.ts", + "../node_modules/typeorm/driver/react-native/reactnativeconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sap/sapconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqlite/sqliteconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqljs/sqljsconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectionoptions.d.ts" + ], + "../node_modules/typeorm/connection/connectionoptionsreader.d.ts": [ + "../node_modules/typeorm/connection/connectionoptions.d.ts" + ], + "../node_modules/typeorm/decorator/columns/column.d.ts": [ + "../node_modules/typeorm/decorator/options/columncommonoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnembeddedoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnenumoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnhstoreoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnnumericoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnwithlengthoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnwithwidthoptions.d.ts", + "../node_modules/typeorm/decorator/options/spatialcolumnoptions.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/createdatecolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/deletedatecolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/objectidcolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/primarycolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/primarygeneratedcolumn.d.ts": [ + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnnumericoptions.d.ts", + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnuuidoptions.d.ts" + ], + "../node_modules/typeorm/decorator/columns/updatedatecolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/versioncolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/columns/viewcolumn.d.ts": [ + "../node_modules/typeorm/decorator/options/viewcolumnoptions.d.ts" + ], + "../node_modules/typeorm/decorator/entity-view/viewentity.d.ts": [ + "../node_modules/typeorm/decorator/options/viewentityoptions.d.ts" + ], + "../node_modules/typeorm/decorator/entity/entity.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/entity/tableinheritance.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/entityrepository.d.ts": [ + "../node_modules/typeorm/entity-schema/entityschema.d.ts" + ], + "../node_modules/typeorm/decorator/index.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/options/columncommonoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts" + ], + "../node_modules/typeorm/decorator/options/columnoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/columncommonoptions.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts" + ], + "../node_modules/typeorm/decorator/options/entityoptions.d.ts": [ + "../node_modules/typeorm/find-options/orderbycondition.d.ts" + ], + "../node_modules/typeorm/decorator/options/jointablemultiplecolumnsoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts" + ], + "../node_modules/typeorm/decorator/options/jointableoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts" + ], + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnnumericoptions.d.ts": [ + "../node_modules/typeorm/driver/types/columntypes.d.ts" + ], + "../node_modules/typeorm/decorator/options/relationoptions.d.ts": [ + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts" + ], + "../node_modules/typeorm/decorator/options/transactionoptions.d.ts": [ + "../node_modules/typeorm/driver/types/isolationlevel.d.ts" + ], + "../node_modules/typeorm/decorator/options/viewentityoptions.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/joincolumn.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/jointable.d.ts": [ + "../node_modules/typeorm/decorator/options/jointablemultiplecolumnsoptions.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/manytomany.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/manytoone.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/onetomany.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/onetoone.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/relationcount.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/relations/relationid.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/decorator/transaction/transaction.d.ts": [ + "../node_modules/typeorm/decorator/options/transactionoptions.d.ts" + ], + "../node_modules/typeorm/decorator/tree/tree.d.ts": [ + "../node_modules/typeorm/metadata/types/treetypes.d.ts" + ], + "../node_modules/typeorm/driver/aurora-data-api-pg/auroradataapipostgresconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/better-sqlite3/bettersqlite3connectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectioncredentialsoptions.d.ts": [ + "../node_modules/@types/node/tls.d.ts" + ], + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/cordova/cordovaconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/driver.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/driver/types/datatypedefaults.d.ts", + "../node_modules/typeorm/driver/types/mappedcolumntypes.d.ts", + "../node_modules/typeorm/driver/types/replicationmode.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/schema-builder/schemabuilder.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts" + ], + "../node_modules/typeorm/driver/expo/expoconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/mongodb/mongoconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts" + ], + "../node_modules/typeorm/driver/mongodb/mongoqueryrunner.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/driver/sqlinmemory.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/platform/platformtools.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts", + "../node_modules/typeorm/schema-builder/view/view.d.ts", + "../node_modules/typeorm/subscriber/broadcaster.d.ts" + ], + "../node_modules/typeorm/driver/mongodb/typings.d.ts": [ + "../node_modules/typeorm/platform/platformtools.d.ts" + ], + "../node_modules/typeorm/driver/mysql/mysqlconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mysql/mysqlconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/nativescript/nativescriptconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/oracle/oracleconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/oracle/oracleconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/postgres/postgresconnectioncredentialsoptions.d.ts": [ + "../node_modules/@types/node/tls.d.ts" + ], + "../node_modules/typeorm/driver/postgres/postgresconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/postgres/postgresconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/react-native/reactnativeconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/sap/sapconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sap/sapconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/sqlinmemory.d.ts": [ + "../node_modules/typeorm/driver/query.d.ts" + ], + "../node_modules/typeorm/driver/sqlite/sqliteconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/sqljs/sqljsconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts" + ], + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectionoptions.d.ts": [ + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectioncredentialsoptions.d.ts" + ], + "../node_modules/typeorm/driver/types/mappedcolumntypes.d.ts": [ + "../node_modules/typeorm/driver/types/columntypes.d.ts" + ], + "../node_modules/typeorm/entity-manager/entitymanager.d.ts": [ + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/driver/types/isolationlevel.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/transformer/plainobjecttonewentitytransformer.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/mongorepository.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts" + ], + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts": [ + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/mongodb/mongoqueryrunner.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts" + ], + "../node_modules/typeorm/entity-manager/sqljsentitymanager.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/entity-schema/entityschema.d.ts": [ + "../node_modules/typeorm/entity-schema/entityschemaoptions.d.ts" + ], + "../node_modules/typeorm/entity-schema/entityschemacolumnoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/spatialcolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts" + ], + "../node_modules/typeorm/entity-schema/entityschemaoptions.d.ts": [ + "../node_modules/typeorm/entity-schema/entityschemacheckoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemacolumnoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaexclusionoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaindexoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemarelationoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemauniqueoptions.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/types/tabletypes.d.ts" + ], + "../node_modules/typeorm/entity-schema/entityschemarelationoptions.d.ts": [ + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/jointablemultiplecolumnsoptions.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts", + "../node_modules/typeorm/metadata/types/relationtypes.d.ts" + ], + "../node_modules/typeorm/find-options/findconditions.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/findmanyoptions.d.ts": [ + "../node_modules/typeorm/find-options/findoneoptions.d.ts" + ], + "../node_modules/typeorm/find-options/findoneoptions.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/joinoptions.d.ts" + ], + "../node_modules/typeorm/find-options/findoperator.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/find-options/findoperatortype.d.ts" + ], + "../node_modules/typeorm/find-options/findoptionsutils.d.ts": [ + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/find-options/operator/any.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/between.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/equal.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/ilike.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/in.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/isnull.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/lessthan.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/lessthanorequal.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/like.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/morethan.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/morethanorequal.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/not.d.ts": [ + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/find-options/operator/raw.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/find-options/findoperator.d.ts" + ], + "../node_modules/typeorm/index.d.ts": [ + "../node_modules/reflect-metadata/index.d.ts", + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/connection/connectionmanager.d.ts", + "../node_modules/typeorm/connection/connectionoptions.d.ts", + "../node_modules/typeorm/connection/connectionoptionsreader.d.ts", + "../node_modules/typeorm/container.d.ts", + "../node_modules/typeorm/decorator/check.d.ts", + "../node_modules/typeorm/decorator/columns/column.d.ts", + "../node_modules/typeorm/decorator/columns/createdatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/deletedatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/objectidcolumn.d.ts", + "../node_modules/typeorm/decorator/columns/primarycolumn.d.ts", + "../node_modules/typeorm/decorator/columns/primarygeneratedcolumn.d.ts", + "../node_modules/typeorm/decorator/columns/updatedatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/versioncolumn.d.ts", + "../node_modules/typeorm/decorator/columns/viewcolumn.d.ts", + "../node_modules/typeorm/decorator/entity-view/viewentity.d.ts", + "../node_modules/typeorm/decorator/entity/childentity.d.ts", + "../node_modules/typeorm/decorator/entity/entity.d.ts", + "../node_modules/typeorm/decorator/entity/tableinheritance.d.ts", + "../node_modules/typeorm/decorator/entityrepository.d.ts", + "../node_modules/typeorm/decorator/exclusion.d.ts", + "../node_modules/typeorm/decorator/generated.d.ts", + "../node_modules/typeorm/decorator/index.d.ts", + "../node_modules/typeorm/decorator/listeners/afterinsert.d.ts", + "../node_modules/typeorm/decorator/listeners/afterload.d.ts", + "../node_modules/typeorm/decorator/listeners/afterremove.d.ts", + "../node_modules/typeorm/decorator/listeners/afterupdate.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeinsert.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeremove.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeupdate.d.ts", + "../node_modules/typeorm/decorator/listeners/eventsubscriber.d.ts", + "../node_modules/typeorm/decorator/options/columnoptions.d.ts", + "../node_modules/typeorm/decorator/options/entityoptions.d.ts", + "../node_modules/typeorm/decorator/options/indexoptions.d.ts", + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/jointableoptions.d.ts", + "../node_modules/typeorm/decorator/options/relationoptions.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/decorator/relations/joincolumn.d.ts", + "../node_modules/typeorm/decorator/relations/jointable.d.ts", + "../node_modules/typeorm/decorator/relations/manytomany.d.ts", + "../node_modules/typeorm/decorator/relations/manytoone.d.ts", + "../node_modules/typeorm/decorator/relations/onetomany.d.ts", + "../node_modules/typeorm/decorator/relations/onetoone.d.ts", + "../node_modules/typeorm/decorator/relations/relationcount.d.ts", + "../node_modules/typeorm/decorator/relations/relationid.d.ts", + "../node_modules/typeorm/decorator/transaction/transaction.d.ts", + "../node_modules/typeorm/decorator/transaction/transactionmanager.d.ts", + "../node_modules/typeorm/decorator/transaction/transactionrepository.d.ts", + "../node_modules/typeorm/decorator/tree/tree.d.ts", + "../node_modules/typeorm/decorator/tree/treechildren.d.ts", + "../node_modules/typeorm/decorator/tree/treelevelcolumn.d.ts", + "../node_modules/typeorm/decorator/tree/treeparent.d.ts", + "../node_modules/typeorm/decorator/unique.d.ts", + "../node_modules/typeorm/driver/driver.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/driver/sqlserver/mssqlparameter.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/driver/types/databasetype.d.ts", + "../node_modules/typeorm/driver/types/replicationmode.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/entity-manager/sqljsentitymanager.d.ts", + "../node_modules/typeorm/entity-schema/entityschema.d.ts", + "../node_modules/typeorm/entity-schema/entityschemacolumnoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaindexoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemarelationoptions.d.ts", + "../node_modules/typeorm/error/queryfailederror.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/find-options/findoperator.d.ts", + "../node_modules/typeorm/find-options/findoperatortype.d.ts", + "../node_modules/typeorm/find-options/findoptionsutils.d.ts", + "../node_modules/typeorm/find-options/joinoptions.d.ts", + "../node_modules/typeorm/find-options/operator/any.d.ts", + "../node_modules/typeorm/find-options/operator/between.d.ts", + "../node_modules/typeorm/find-options/operator/equal.d.ts", + "../node_modules/typeorm/find-options/operator/ilike.d.ts", + "../node_modules/typeorm/find-options/operator/in.d.ts", + "../node_modules/typeorm/find-options/operator/isnull.d.ts", + "../node_modules/typeorm/find-options/operator/lessthan.d.ts", + "../node_modules/typeorm/find-options/operator/lessthanorequal.d.ts", + "../node_modules/typeorm/find-options/operator/like.d.ts", + "../node_modules/typeorm/find-options/operator/morethan.d.ts", + "../node_modules/typeorm/find-options/operator/morethanorequal.d.ts", + "../node_modules/typeorm/find-options/operator/not.d.ts", + "../node_modules/typeorm/find-options/operator/raw.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/logger/advancedconsolelogger.d.ts", + "../node_modules/typeorm/logger/filelogger.d.ts", + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/logger/loggeroptions.d.ts", + "../node_modules/typeorm/logger/simpleconsolelogger.d.ts", + "../node_modules/typeorm/metadata-args/metadataargsstorage.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/migration/migration.d.ts", + "../node_modules/typeorm/migration/migrationexecutor.d.ts", + "../node_modules/typeorm/migration/migrationinterface.d.ts", + "../node_modules/typeorm/naming-strategy/defaultnamingstrategy.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/deletequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/insertquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/relationquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/updatequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/abstractrepository.d.ts", + "../node_modules/typeorm/repository/baseentity.d.ts", + "../node_modules/typeorm/repository/mongorepository.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts", + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts", + "../node_modules/typeorm/subscriber/event/insertevent.d.ts", + "../node_modules/typeorm/subscriber/event/loadevent.d.ts", + "../node_modules/typeorm/subscriber/event/removeevent.d.ts", + "../node_modules/typeorm/subscriber/event/updateevent.d.ts" + ], + "../node_modules/typeorm/logger/advancedconsolelogger.d.ts": [ + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/logger/filelogger.d.ts": [ + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/logger/loggeroptions.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/logger/logger.d.ts": [ + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/logger/simpleconsolelogger.d.ts": [ + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/metadata-args/columnmetadataargs.d.ts": [ + "../node_modules/typeorm/decorator/options/columnoptions.d.ts", + "../node_modules/typeorm/metadata-args/types/columnmode.d.ts" + ], + "../node_modules/typeorm/metadata-args/entitylistenermetadataargs.d.ts": [ + "../node_modules/typeorm/metadata/types/eventlistenertypes.d.ts" + ], + "../node_modules/typeorm/metadata-args/entityrepositorymetadataargs.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts" + ], + "../node_modules/typeorm/metadata-args/inheritancemetadataargs.d.ts": [ + "../node_modules/typeorm/decorator/options/columnoptions.d.ts" + ], + "../node_modules/typeorm/metadata-args/jointablemetadataargs.d.ts": [ + "../node_modules/typeorm/metadata-args/joincolumnmetadataargs.d.ts" + ], + "../node_modules/typeorm/metadata-args/metadataargsstorage.d.ts": [ + "../node_modules/typeorm/metadata-args/checkmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/columnmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/discriminatorvaluemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/embeddedmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entitylistenermetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entityrepositorymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entitysubscribermetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/exclusionmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/generatedmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/indexmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/inheritancemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/joincolumnmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/jointablemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/namingstrategymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationcountmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationidmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/tablemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/transactionentitymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/transactionrepositorymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/treemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/uniquemetadataargs.d.ts" + ], + "../node_modules/typeorm/metadata-args/relationcountmetadataargs.d.ts": [ + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/metadata-args/relationidmetadataargs.d.ts": [ + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/metadata-args/relationmetadataargs.d.ts": [ + "../node_modules/typeorm/decorator/options/relationoptions.d.ts", + "../node_modules/typeorm/metadata/types/propertytypeinfunction.d.ts", + "../node_modules/typeorm/metadata/types/relationtypeinfunction.d.ts", + "../node_modules/typeorm/metadata/types/relationtypes.d.ts" + ], + "../node_modules/typeorm/metadata-args/tablemetadataargs.d.ts": [ + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/types/tabletypes.d.ts" + ], + "../node_modules/typeorm/metadata-args/treemetadataargs.d.ts": [ + "../node_modules/typeorm/metadata/types/treetypes.d.ts" + ], + "../node_modules/typeorm/metadata/checkmetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/checkmetadataargs.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/metadata/columnmetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/metadata-args/columnmetadataargs.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts" + ], + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/metadata-args/embeddedmetadataargs.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitylistenermetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/indexmetadata.d.ts", + "../node_modules/typeorm/metadata/relationcountmetadata.d.ts", + "../node_modules/typeorm/metadata/relationidmetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/metadata/uniquemetadata.d.ts" + ], + "../node_modules/typeorm/metadata/entitylistenermetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata-args/entitylistenermetadataargs.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/types/eventlistenertypes.d.ts" + ], + "../node_modules/typeorm/metadata/entitymetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata-args/tablemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/treemetadataargs.d.ts", + "../node_modules/typeorm/metadata/checkmetadata.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitylistenermetadata.d.ts", + "../node_modules/typeorm/metadata/exclusionmetadata.d.ts", + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts", + "../node_modules/typeorm/metadata/indexmetadata.d.ts", + "../node_modules/typeorm/metadata/relationcountmetadata.d.ts", + "../node_modules/typeorm/metadata/relationidmetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/metadata/types/tabletypes.d.ts", + "../node_modules/typeorm/metadata/types/treetypes.d.ts", + "../node_modules/typeorm/metadata/uniquemetadata.d.ts" + ], + "../node_modules/typeorm/metadata/exclusionmetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/exclusionmetadataargs.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts": [ + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/metadata/indexmetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/indexmetadataargs.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/metadata/relationcountmetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/relationcountmetadataargs.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/metadata/relationidmetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata-args/relationidmetadataargs.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/metadata/relationmetadata.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata-args/relationmetadataargs.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts", + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts", + "../node_modules/typeorm/metadata/types/propertytypeinfunction.d.ts", + "../node_modules/typeorm/metadata/types/relationtypes.d.ts" + ], + "../node_modules/typeorm/metadata/uniquemetadata.d.ts": [ + "../node_modules/typeorm/metadata-args/uniquemetadataargs.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts" + ], + "../node_modules/typeorm/migration/migration.d.ts": [ + "../node_modules/typeorm/migration/migrationinterface.d.ts" + ], + "../node_modules/typeorm/migration/migrationexecutor.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/migration/migration.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/migration/migrationinterface.d.ts": [ + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/naming-strategy/defaultnamingstrategy.d.ts": [ + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts" + ], + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts": [ + "../node_modules/typeorm/schema-builder/table/table.d.ts" + ], + "../node_modules/typeorm/platform/platformtools.d.ts": [ + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/stream.d.ts" + ], + "../node_modules/typeorm/query-builder/alias.d.ts": [ + "../node_modules/typeorm/metadata/entitymetadata.d.ts" + ], + "../node_modules/typeorm/query-builder/brackets.d.ts": [ + "../node_modules/typeorm/query-builder/whereexpression.d.ts" + ], + "../node_modules/typeorm/query-builder/deletequerybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/insertquerybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts" + ], + "../node_modules/typeorm/query-builder/joinattribute.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/alias.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts" + ], + "../node_modules/typeorm/query-builder/querybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/findoperator.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/query-builder/alias.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/deletequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/insertquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/relationquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/softdeletequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/updatequerybuilder.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/alias.d.ts", + "../node_modules/typeorm/query-builder/joinattribute.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/relation-count/relationcountattribute.d.ts", + "../node_modules/typeorm/query-builder/relation-id/relationidattribute.d.ts", + "../node_modules/typeorm/query-builder/selectquery.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilderoption.d.ts" + ], + "../node_modules/typeorm/query-builder/relation-count/relationcountattribute.d.ts": [ + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/query-builder/relation-id/relationidattribute.d.ts": [ + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts" + ], + "../node_modules/typeorm/query-builder/relationidloader.d.ts": [ + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts" + ], + "../node_modules/typeorm/query-builder/relationloader.d.ts": [ + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts" + ], + "../node_modules/typeorm/query-builder/relationquerybuilder.d.ts": [ + "../node_modules/typeorm/query-builder/querybuilder.d.ts" + ], + "../node_modules/typeorm/query-builder/result/insertresult.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts" + ], + "../node_modules/typeorm/query-builder/result/updateresult.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts" + ], + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/platform/platformtools.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/selectquery.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilderoption.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/softdeletequerybuilder.d.ts": [ + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/transformer/plainobjecttonewentitytransformer.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts" + ], + "../node_modules/typeorm/query-builder/updatequerybuilder.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/query-builder/whereexpression.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts" + ], + "../node_modules/typeorm/query-runner/queryrunner.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/sqlinmemory.d.ts", + "../node_modules/typeorm/driver/types/isolationlevel.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/platform/platformtools.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts", + "../node_modules/typeorm/schema-builder/view/view.d.ts", + "../node_modules/typeorm/subscriber/broadcaster.d.ts" + ], + "../node_modules/typeorm/repository/abstractrepository.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts" + ], + "../node_modules/typeorm/repository/baseentity.d.ts": [ + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts" + ], + "../node_modules/typeorm/repository/mongorepository.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/repository.d.ts" + ], + "../node_modules/typeorm/repository/repository.d.ts": [ + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts" + ], + "../node_modules/typeorm/repository/treerepository.d.ts": [ + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/repository/repository.d.ts" + ], + "../node_modules/typeorm/schema-builder/options/tableoptions.d.ts": [ + "../node_modules/typeorm/schema-builder/options/tablecheckoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tablecolumnoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableexclusionoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableforeignkeyoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableindexoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableuniqueoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/options/viewoptions.d.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../node_modules/typeorm/schema-builder/schemabuilder.d.ts": [ + "../node_modules/typeorm/driver/sqlinmemory.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/table.d.ts": [ + "../node_modules/typeorm/driver/driver.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableoptions.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts": [ + "../node_modules/typeorm/metadata/checkmetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tablecheckoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts": [ + "../node_modules/typeorm/schema-builder/options/tablecolumnoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts": [ + "../node_modules/typeorm/metadata/exclusionmetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableexclusionoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts": [ + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableforeignkeyoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts": [ + "../node_modules/typeorm/metadata/indexmetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableindexoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts": [ + "../node_modules/typeorm/metadata/uniquemetadata.d.ts", + "../node_modules/typeorm/schema-builder/options/tableuniqueoptions.d.ts" + ], + "../node_modules/typeorm/schema-builder/view/view.d.ts": [ + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/schema-builder/options/viewoptions.d.ts" + ], + "../node_modules/typeorm/subscriber/broadcaster.d.ts": [ + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/subscriber/broadcasterresult.d.ts", + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts" + ], + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts": [ + "../node_modules/typeorm/subscriber/event/insertevent.d.ts", + "../node_modules/typeorm/subscriber/event/loadevent.d.ts", + "../node_modules/typeorm/subscriber/event/removeevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactioncommitevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactionrollbackevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactionstartevent.d.ts", + "../node_modules/typeorm/subscriber/event/updateevent.d.ts" + ], + "../node_modules/typeorm/subscriber/event/insertevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/loadevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/removeevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/transactioncommitevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/transactionrollbackevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/transactionstartevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/typeorm/subscriber/event/updateevent.d.ts": [ + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts" + ], + "../node_modules/winston-transport/index.d.ts": [ + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/logform/index.d.ts" + ], + "../node_modules/winston/index.d.ts": [ + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/logform/index.d.ts", + "../node_modules/winston-transport/index.d.ts", + "../node_modules/winston/lib/winston/config/index.d.ts", + "../node_modules/winston/lib/winston/transports/index.d.ts" + ], + "../node_modules/winston/lib/winston/config/index.d.ts": [ + "../node_modules/@types/node/index.d.ts" + ], + "../node_modules/winston/lib/winston/transports/index.d.ts": [ + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/winston-transport/index.d.ts" + ], + "../src/app/app.controller.ts": [ + "../src/app/app.service.ts" + ], + "../src/app/core/auth/controllers/auth.controller.ts": [ + "../src/app/core/auth/services/auth.service.ts", + "../src/app/core/user/model/entities/user.entity.ts" + ], + "../src/app/core/auth/decorators/roles.decorator.ts": [ + "../node_modules/@nestjs/common/index.d.ts" + ], + "../src/app/core/auth/guards/roles.guard.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/core/index.d.ts" + ], + "../src/app/core/auth/model/login.dto.ts": [ + "../src/app/core/user/model/entities/user.entity.ts" + ], + "../src/app/core/auth/model/user-request.interface.ts": [ + "../node_modules/@types/express/index.d.ts" + ], + "../src/app/core/auth/services/auth.service.ts": [ + "../src/app/core/auth/model/login.dto.ts", + "../src/app/core/user/model/entities/user.entity.ts", + "../src/app/core/user/services/user.service.ts" + ], + "../src/app/core/auth/strategies/jwt.strategy.ts": [ + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@types/passport-jwt/index.d.ts", + "../src/app/shared/model/config/config.model.ts" + ], + "../src/app/core/user/model/dto/user-payload.dto.ts": [ + "../src/app/core/user/model/entities/user.entity.ts" + ], + "../src/app/core/user/model/entities/user.entity.ts": [ + "../src/app/shared/model/entities/base-entity.entity.ts" + ], + "../src/app/core/user/services/user.service.ts": [ + "../node_modules/typeorm/index.d.ts", + "../src/app/core/user/model/entities/user.entity.ts" + ], + "../src/app/event/controllers/event.crud.controller.ts": [ + "../src/app/event/services/event.crud.service.ts" + ], + "../src/app/event/model/entities/event.entity.ts": [ + "../src/app/shared/model/entities/base-entity.entity.ts" + ], + "../src/app/event/services/event.crud.service.ts": [ + "../node_modules/@nestjsx/crud-typeorm/lib/index.d.ts", + "../node_modules/typeorm/index.d.ts", + "../src/app/event/model/entities/event.entity.ts" + ], + "../src/app/queue-detail/controllers/queue-detail.crud.controller.ts": [ + "../src/app/queue-detail/model/entities/queue-detail.entity.ts", + "../src/app/queue-detail/model/entities/queuedetail.dto.ts", + "../src/app/queue-detail/services/queue-detail.crud.service.ts" + ], + "../src/app/queue-detail/model/entities/queue-detail.entity.ts": [ + "../src/app/shared/model/entities/base-entity.entity.ts" + ], + "../src/app/queue-detail/services/queue-detail.crud.service.ts": [ + "../node_modules/typeorm/index.d.ts", + "../src/app/core/user/model/entities/user.entity.ts", + "../src/app/event/model/entities/event.entity.ts", + "../src/app/event/services/event.crud.service.ts", + "../src/app/queue-detail/model/entities/queue-detail.entity.ts", + "../src/app/queue-detail/model/entities/queuedetail.dto.ts" + ], + "../src/app/shared/filters/business-logic.filter.ts": [ + "../node_modules/@nestjs/common/index.d.ts", + "../src/app/shared/exceptions/business-logic.exception.ts", + "../src/app/shared/logger/winston.logger.ts" + ], + "../src/app/shared/logger/winston.logger.ts": [ + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../src/app/shared/model/config/config.model.ts" + ], + "../src/app/shared/model/config/config.model.ts": [ + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/jwt/index.d.ts", + "../node_modules/typeorm/index.d.ts" + ], + "../src/config/default.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/config/develop.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/config/production.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/config/test.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/config/uat.ts": [ + "../src/app/shared/model/config/config.model.ts" + ], + "../src/migration/1609823263069-createtables.ts": [ + "../node_modules/typeorm/index.d.ts" + ], + "../src/migration/1609823284132-insertdata.ts": [ + "../node_modules/typeorm/index.d.ts" + ] + }, + "semanticDiagnosticsPerFile": [ + "../node_modules/@babel/parser/typings/babel-parser.d.ts", + "../node_modules/@babel/types/lib/index.d.ts", + "../node_modules/@devon4node/common/serializer/decorators/crud-type.decorator.d.ts", + "../node_modules/@devon4node/common/serializer/index.d.ts", + "../node_modules/@devon4node/common/serializer/interceptors/class-serializer.interceptor.d.ts", + "../node_modules/@devon4node/config/dist/base-config.d.ts", + "../node_modules/@devon4node/config/dist/config.module.d.ts", + "../node_modules/@devon4node/config/dist/config.service.d.ts", + "../node_modules/@devon4node/config/dist/config.types.d.ts", + "../node_modules/@devon4node/config/dist/index.d.ts", + "../node_modules/@nestjs/common/cache/cache.constants.d.ts", + "../node_modules/@nestjs/common/cache/cache.module.d.ts", + "../node_modules/@nestjs/common/cache/decorators/cache-key.decorator.d.ts", + "../node_modules/@nestjs/common/cache/decorators/cache-ttl.decorator.d.ts", + "../node_modules/@nestjs/common/cache/decorators/index.d.ts", + "../node_modules/@nestjs/common/cache/index.d.ts", + "../node_modules/@nestjs/common/cache/interceptors/cache.interceptor.d.ts", + "../node_modules/@nestjs/common/cache/interceptors/index.d.ts", + "../node_modules/@nestjs/common/cache/interfaces/cache-manager.interface.d.ts", + "../node_modules/@nestjs/common/cache/interfaces/cache-module.interface.d.ts", + "../node_modules/@nestjs/common/cache/interfaces/index.d.ts", + "../node_modules/@nestjs/common/decorators/core/apply-decorators.d.ts", + "../node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/catch.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/controller.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/dependencies.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/exception-filters.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/index.d.ts", + "../node_modules/@nestjs/common/decorators/core/inject.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/injectable.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/optional.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/set-metadata.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-guards.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-interceptors.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/core/use-pipes.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/create-route-param-metadata.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/header.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/http-code.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/index.d.ts", + "../node_modules/@nestjs/common/decorators/http/redirect.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/render.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/request-mapping.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/route-params.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/http/sse.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/index.d.ts", + "../node_modules/@nestjs/common/decorators/modules/global.decorator.d.ts", + "../node_modules/@nestjs/common/decorators/modules/index.d.ts", + "../node_modules/@nestjs/common/decorators/modules/module.decorator.d.ts", + "../node_modules/@nestjs/common/enums/http-status.enum.d.ts", + "../node_modules/@nestjs/common/enums/index.d.ts", + "../node_modules/@nestjs/common/enums/request-method.enum.d.ts", + "../node_modules/@nestjs/common/enums/shutdown-signal.enum.d.ts", + "../node_modules/@nestjs/common/exceptions/bad-gateway.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/bad-request.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/conflict.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/forbidden.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/gateway-timeout.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/gone.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/http-version-not-supported.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/http.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/im-a-teapot.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/index.d.ts", + "../node_modules/@nestjs/common/exceptions/internal-server-error.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/method-not-allowed.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/misdirected.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-acceptable.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-found.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/not-implemented.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/payload-too-large.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/precondition-failed.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/request-timeout.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/service-unavailable.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unauthorized.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unprocessable-entity.exception.d.ts", + "../node_modules/@nestjs/common/exceptions/unsupported-media-type.exception.d.ts", + "../node_modules/@nestjs/common/http/http.module.d.ts", + "../node_modules/@nestjs/common/http/http.service.d.ts", + "../node_modules/@nestjs/common/http/index.d.ts", + "../node_modules/@nestjs/common/http/interfaces/http-module.interface.d.ts", + "../node_modules/@nestjs/common/http/interfaces/index.d.ts", + "../node_modules/@nestjs/common/index.d.ts", + "../node_modules/@nestjs/common/interfaces/abstract.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/rpc-exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/exceptions/ws-exception-filter.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/class-transform-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/cors-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/https-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/validation-error.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/external/validator-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/can-activate.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/custom-route-param-factory.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/execution-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/nest-interceptor.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/paramtype.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/features/pipe-transform.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/before-application-shutdown.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/index.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-application-bootstrap.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-application-shutdown.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-destroy.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/hooks/on-init.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/http/http-server.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/http/index.d.ts", + "../node_modules/@nestjs/common/interfaces/http/message-event.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/index.d.ts", + "../node_modules/@nestjs/common/interfaces/injectable.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/microservices/nest-hybrid-application-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/microservices/nest-microservice-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/index.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-config-proxy.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-configuration.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/middleware-consumer.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/middleware/nest-middleware.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/dynamic-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/forward-reference.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/index.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/introspection-result.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/nest-module.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/modules/provider.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-context.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-application.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/nest-microservice.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/scope-options.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/common/interfaces/websockets/web-socket-adapter.interface.d.ts", + "../node_modules/@nestjs/common/pipes/default-value.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/index.d.ts", + "../node_modules/@nestjs/common/pipes/parse-array.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-bool.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-int.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/parse-uuid.pipe.d.ts", + "../node_modules/@nestjs/common/pipes/validation.pipe.d.ts", + "../node_modules/@nestjs/common/serializer/class-serializer.interceptor.d.ts", + "../node_modules/@nestjs/common/serializer/decorators/index.d.ts", + "../node_modules/@nestjs/common/serializer/decorators/serialize-options.decorator.d.ts", + "../node_modules/@nestjs/common/serializer/index.d.ts", + "../node_modules/@nestjs/common/services/index.d.ts", + "../node_modules/@nestjs/common/services/logger.service.d.ts", + "../node_modules/@nestjs/common/utils/forward-ref.util.d.ts", + "../node_modules/@nestjs/common/utils/http-error-by-code.util.d.ts", + "../node_modules/@nestjs/common/utils/index.d.ts", + "../node_modules/@nestjs/core/adapters/http-adapter.d.ts", + "../node_modules/@nestjs/core/adapters/index.d.ts", + "../node_modules/@nestjs/core/application-config.d.ts", + "../node_modules/@nestjs/core/constants.d.ts", + "../node_modules/@nestjs/core/discovery/discovery-module.d.ts", + "../node_modules/@nestjs/core/discovery/discovery-service.d.ts", + "../node_modules/@nestjs/core/discovery/index.d.ts", + "../node_modules/@nestjs/core/exceptions/base-exception-filter.d.ts", + "../node_modules/@nestjs/core/exceptions/index.d.ts", + "../node_modules/@nestjs/core/helpers/context-id-factory.d.ts", + "../node_modules/@nestjs/core/helpers/http-adapter-host.d.ts", + "../node_modules/@nestjs/core/helpers/index.d.ts", + "../node_modules/@nestjs/core/index.d.ts", + "../node_modules/@nestjs/core/injector/container.d.ts", + "../node_modules/@nestjs/core/injector/index.d.ts", + "../node_modules/@nestjs/core/injector/injector.d.ts", + "../node_modules/@nestjs/core/injector/inquirer/index.d.ts", + "../node_modules/@nestjs/core/injector/inquirer/inquirer-constants.d.ts", + "../node_modules/@nestjs/core/injector/instance-wrapper.d.ts", + "../node_modules/@nestjs/core/injector/module-ref.d.ts", + "../node_modules/@nestjs/core/injector/module-token-factory.d.ts", + "../node_modules/@nestjs/core/injector/module.d.ts", + "../node_modules/@nestjs/core/injector/modules-container.d.ts", + "../node_modules/@nestjs/core/metadata-scanner.d.ts", + "../node_modules/@nestjs/core/middleware/builder.d.ts", + "../node_modules/@nestjs/core/middleware/index.d.ts", + "../node_modules/@nestjs/core/middleware/routes-mapper.d.ts", + "../node_modules/@nestjs/core/nest-application-context.d.ts", + "../node_modules/@nestjs/core/nest-application.d.ts", + "../node_modules/@nestjs/core/nest-factory.d.ts", + "../node_modules/@nestjs/core/router/index.d.ts", + "../node_modules/@nestjs/core/router/request/index.d.ts", + "../node_modules/@nestjs/core/router/request/request-constants.d.ts", + "../node_modules/@nestjs/core/services/index.d.ts", + "../node_modules/@nestjs/core/services/reflector.service.d.ts", + "../node_modules/@nestjs/jwt/dist/index.d.ts", + "../node_modules/@nestjs/jwt/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/jwt/dist/interfaces/jwt-module-options.interface.d.ts", + "../node_modules/@nestjs/jwt/dist/jwt.module.d.ts", + "../node_modules/@nestjs/jwt/dist/jwt.service.d.ts", + "../node_modules/@nestjs/jwt/index.d.ts", + "../node_modules/@nestjs/passport/dist/abstract.strategy.d.ts", + "../node_modules/@nestjs/passport/dist/auth.guard.d.ts", + "../node_modules/@nestjs/passport/dist/index.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/auth-module.options.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/passport/dist/interfaces/type.interface.d.ts", + "../node_modules/@nestjs/passport/dist/passport.module.d.ts", + "../node_modules/@nestjs/passport/dist/passport/passport.serializer.d.ts", + "../node_modules/@nestjs/passport/dist/passport/passport.strategy.d.ts", + "../node_modules/@nestjs/passport/index.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-basic.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-bearer.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-body.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-consumes.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-cookie.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-exclude-endpoint.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-extension.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-extra-models.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-header.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-hide-property.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-oauth2.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-operation.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-param.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-produces.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-property.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-query.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-response.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-security.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/api-use-tags.decorator.d.ts", + "../node_modules/@nestjs/swagger/dist/decorators/index.d.ts", + "../node_modules/@nestjs/swagger/dist/document-builder.d.ts", + "../node_modules/@nestjs/swagger/dist/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/open-api-spec.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/schema-object-metadata.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/swagger-custom-options.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/interfaces/swagger-document-options.interface.d.ts", + "../node_modules/@nestjs/swagger/dist/swagger-module.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/index.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/intersection-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/omit-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/partial-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/type-helpers/pick-type.helper.d.ts", + "../node_modules/@nestjs/swagger/dist/types/swagger-enum.type.d.ts", + "../node_modules/@nestjs/swagger/dist/utils/get-schema-path.util.d.ts", + "../node_modules/@nestjs/swagger/dist/utils/index.d.ts", + "../node_modules/@nestjs/swagger/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/common/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/common/typeorm.decorators.d.ts", + "../node_modules/@nestjs/typeorm/dist/common/typeorm.utils.d.ts", + "../node_modules/@nestjs/typeorm/dist/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/index.d.ts", + "../node_modules/@nestjs/typeorm/dist/interfaces/typeorm-options.interface.d.ts", + "../node_modules/@nestjs/typeorm/dist/typeorm.module.d.ts", + "../node_modules/@nestjs/typeorm/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/exceptions/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/exceptions/request-query.exception.d.ts", + "../node_modules/@nestjsx/crud-request/lib/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/create-query-params.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/parsed-request.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/interfaces/request-query-builder-options.interface.d.ts", + "../node_modules/@nestjsx/crud-request/lib/request-query.builder.d.ts", + "../node_modules/@nestjsx/crud-request/lib/request-query.parser.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/index.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/request-param.types.d.ts", + "../node_modules/@nestjsx/crud-request/lib/types/request-query.types.d.ts", + "../node_modules/@nestjsx/crud-typeorm/lib/index.d.ts", + "../node_modules/@nestjsx/crud-typeorm/lib/typeorm-crud.service.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/crud-auth.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/crud.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/feature-action.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/index.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/override.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/parsed-body.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/decorators/parsed-request.decorator.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/crud-actions.enum.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/crud-validation-groups.enum.d.ts", + "../node_modules/@nestjsx/crud/lib/enums/index.d.ts", + "../node_modules/@nestjsx/crud/lib/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-base.interceptor.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-request.interceptor.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/crud-response.interceptor.d.ts", + "../node_modules/@nestjsx/crud/lib/interceptors/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/auth-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/base-route.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/create-many-dto.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-controller.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-global-config.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/crud-request.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/dto-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/get-many-default-response.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/index.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/model-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/params-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/query-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/routes-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/interfaces/serialize-options.interface.d.ts", + "../node_modules/@nestjsx/crud/lib/module/crud-config.service.d.ts", + "../node_modules/@nestjsx/crud/lib/module/index.d.ts", + "../node_modules/@nestjsx/crud/lib/services/crud-service.abstract.d.ts", + "../node_modules/@nestjsx/crud/lib/services/index.d.ts", + "../node_modules/@nestjsx/crud/lib/types/base-route-name.type.d.ts", + "../node_modules/@nestjsx/crud/lib/types/index.d.ts", + "../node_modules/@nestjsx/crud/lib/types/query-filter-option.type.d.ts", + "../node_modules/@nestjsx/util/lib/checks.util.d.ts", + "../node_modules/@nestjsx/util/lib/index.d.ts", + "../node_modules/@nestjsx/util/lib/obj.util.d.ts", + "../node_modules/@nestjsx/util/lib/types/index.d.ts", + "../node_modules/@nestjsx/util/lib/types/object-literal.type.d.ts", + "../node_modules/@types/anymatch/index.d.ts", + "../node_modules/@types/babel__core/index.d.ts", + "../node_modules/@types/babel__generator/index.d.ts", + "../node_modules/@types/babel__template/index.d.ts", + "../node_modules/@types/babel__traverse/index.d.ts", + "../node_modules/@types/bcrypt/index.d.ts", + "../node_modules/@types/body-parser/index.d.ts", + "../node_modules/@types/connect/index.d.ts", + "../node_modules/@types/cookiejar/index.d.ts", + "../node_modules/@types/eslint-scope/index.d.ts", + "../node_modules/@types/eslint/helpers.d.ts", + "../node_modules/@types/eslint/index.d.ts", + "../node_modules/@types/estree/index.d.ts", + "../node_modules/@types/express-serve-static-core/index.d.ts", + "../node_modules/@types/express/index.d.ts", + "../node_modules/@types/graceful-fs/index.d.ts", + "../node_modules/@types/helmet/index.d.ts", + "../node_modules/@types/istanbul-lib-coverage/index.d.ts", + "../node_modules/@types/istanbul-lib-report/index.d.ts", + "../node_modules/@types/istanbul-reports/index.d.ts", + "../node_modules/@types/jest/index.d.ts", + "../node_modules/@types/json-schema/index.d.ts", + "../node_modules/@types/json5/index.d.ts", + "../node_modules/@types/jsonwebtoken/index.d.ts", + "../node_modules/@types/lodash/common/array.d.ts", + "../node_modules/@types/lodash/common/collection.d.ts", + "../node_modules/@types/lodash/common/common.d.ts", + "../node_modules/@types/lodash/common/date.d.ts", + "../node_modules/@types/lodash/common/function.d.ts", + "../node_modules/@types/lodash/common/lang.d.ts", + "../node_modules/@types/lodash/common/math.d.ts", + "../node_modules/@types/lodash/common/number.d.ts", + "../node_modules/@types/lodash/common/object.d.ts", + "../node_modules/@types/lodash/common/seq.d.ts", + "../node_modules/@types/lodash/common/string.d.ts", + "../node_modules/@types/lodash/common/util.d.ts", + "../node_modules/@types/lodash/index.d.ts", + "../node_modules/@types/mime/index.d.ts", + "../node_modules/@types/minimatch/index.d.ts", + "../node_modules/@types/node/assert.d.ts", + "../node_modules/@types/node/async_hooks.d.ts", + "../node_modules/@types/node/base.d.ts", + "../node_modules/@types/node/buffer.d.ts", + "../node_modules/@types/node/child_process.d.ts", + "../node_modules/@types/node/cluster.d.ts", + "../node_modules/@types/node/console.d.ts", + "../node_modules/@types/node/constants.d.ts", + "../node_modules/@types/node/crypto.d.ts", + "../node_modules/@types/node/dgram.d.ts", + "../node_modules/@types/node/dns.d.ts", + "../node_modules/@types/node/domain.d.ts", + "../node_modules/@types/node/events.d.ts", + "../node_modules/@types/node/fs.d.ts", + "../node_modules/@types/node/fs/promises.d.ts", + "../node_modules/@types/node/globals.d.ts", + "../node_modules/@types/node/globals.global.d.ts", + "../node_modules/@types/node/http.d.ts", + "../node_modules/@types/node/http2.d.ts", + "../node_modules/@types/node/https.d.ts", + "../node_modules/@types/node/index.d.ts", + "../node_modules/@types/node/inspector.d.ts", + "../node_modules/@types/node/module.d.ts", + "../node_modules/@types/node/net.d.ts", + "../node_modules/@types/node/os.d.ts", + "../node_modules/@types/node/path.d.ts", + "../node_modules/@types/node/perf_hooks.d.ts", + "../node_modules/@types/node/process.d.ts", + "../node_modules/@types/node/punycode.d.ts", + "../node_modules/@types/node/querystring.d.ts", + "../node_modules/@types/node/readline.d.ts", + "../node_modules/@types/node/repl.d.ts", + "../node_modules/@types/node/stream.d.ts", + "../node_modules/@types/node/string_decoder.d.ts", + "../node_modules/@types/node/timers.d.ts", + "../node_modules/@types/node/tls.d.ts", + "../node_modules/@types/node/trace_events.d.ts", + "../node_modules/@types/node/ts3.4/base.d.ts", + "../node_modules/@types/node/ts3.6/base.d.ts", + "../node_modules/@types/node/tty.d.ts", + "../node_modules/@types/node/url.d.ts", + "../node_modules/@types/node/util.d.ts", + "../node_modules/@types/node/v8.d.ts", + "../node_modules/@types/node/vm.d.ts", + "../node_modules/@types/node/wasi.d.ts", + "../node_modules/@types/node/worker_threads.d.ts", + "../node_modules/@types/node/zlib.d.ts", + "../node_modules/@types/normalize-package-data/index.d.ts", + "../node_modules/@types/parse-json/index.d.ts", + "../node_modules/@types/passport-jwt/index.d.ts", + "../node_modules/@types/passport-strategy/index.d.ts", + "../node_modules/@types/passport/index.d.ts", + "../node_modules/@types/prettier/index.d.ts", + "../node_modules/@types/qs/index.d.ts", + "../node_modules/@types/range-parser/index.d.ts", + "../node_modules/@types/serve-static/index.d.ts", + "../node_modules/@types/source-list-map/index.d.ts", + "../node_modules/@types/stack-utils/index.d.ts", + "../node_modules/@types/superagent/index.d.ts", + "../node_modules/@types/supertest/index.d.ts", + "../node_modules/@types/tapable/index.d.ts", + "../node_modules/@types/uglify-js/index.d.ts", + "../node_modules/@types/validator/index.d.ts", + "../node_modules/@types/webpack-sources/index.d.ts", + "../node_modules/@types/webpack-sources/lib/cachedsource.d.ts", + "../node_modules/@types/webpack-sources/lib/compatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/concatsource.d.ts", + "../node_modules/@types/webpack-sources/lib/index.d.ts", + "../node_modules/@types/webpack-sources/lib/originalsource.d.ts", + "../node_modules/@types/webpack-sources/lib/prefixsource.d.ts", + "../node_modules/@types/webpack-sources/lib/rawsource.d.ts", + "../node_modules/@types/webpack-sources/lib/replacesource.d.ts", + "../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts", + "../node_modules/@types/webpack-sources/lib/source.d.ts", + "../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts", + "../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts", + "../node_modules/@types/webpack/index.d.ts", + "../node_modules/@types/yargs-parser/index.d.ts", + "../node_modules/@types/yargs/index.d.ts", + "../node_modules/anymatch/index.d.ts", + "../node_modules/axios/index.d.ts", + "../node_modules/class-transformer/classtransformer.d.ts", + "../node_modules/class-transformer/classtransformoptions.d.ts", + "../node_modules/class-transformer/decorators.d.ts", + "../node_modules/class-transformer/index.d.ts", + "../node_modules/class-transformer/metadata/exposeexcludeoptions.d.ts", + "../node_modules/class-transformer/metadata/typemetadata.d.ts", + "../node_modules/class-transformer/transformoperationexecutor.d.ts", + "../node_modules/class-validator/container.d.ts", + "../node_modules/class-validator/decorator/decorators.d.ts", + "../node_modules/class-validator/decorator/validationoptions.d.ts", + "../node_modules/class-validator/index.d.ts", + "../node_modules/class-validator/metadata/constraintmetadata.d.ts", + "../node_modules/class-validator/metadata/metadatastorage.d.ts", + "../node_modules/class-validator/metadata/validationmetadata.d.ts", + "../node_modules/class-validator/metadata/validationmetadataargs.d.ts", + "../node_modules/class-validator/register-decorator.d.ts", + "../node_modules/class-validator/validation-schema/validationschema.d.ts", + "../node_modules/class-validator/validation/validationarguments.d.ts", + "../node_modules/class-validator/validation/validationerror.d.ts", + "../node_modules/class-validator/validation/validationtypeoptions.d.ts", + "../node_modules/class-validator/validation/validationtypes.d.ts", + "../node_modules/class-validator/validation/validator.d.ts", + "../node_modules/class-validator/validation/validatorconstraintinterface.d.ts", + "../node_modules/class-validator/validation/validatoroptions.d.ts", + "../node_modules/jest-diff/build/cleanupsemantic.d.ts", + "../node_modules/jest-diff/build/difflines.d.ts", + "../node_modules/jest-diff/build/index.d.ts", + "../node_modules/jest-diff/build/printdiffs.d.ts", + "../node_modules/jest-diff/build/types.d.ts", + "../node_modules/logform/index.d.ts", + "../node_modules/pretty-format/build/index.d.ts", + "../node_modules/pretty-format/build/types.d.ts", + "../node_modules/reflect-metadata/index.d.ts", + "../node_modules/rxjs/index.d.ts", + "../node_modules/rxjs/internal/asyncsubject.d.ts", + "../node_modules/rxjs/internal/behaviorsubject.d.ts", + "../node_modules/rxjs/internal/config.d.ts", + "../node_modules/rxjs/internal/innersubscriber.d.ts", + "../node_modules/rxjs/internal/notification.d.ts", + "../node_modules/rxjs/internal/observable.d.ts", + "../node_modules/rxjs/internal/observable/bindcallback.d.ts", + "../node_modules/rxjs/internal/observable/bindnodecallback.d.ts", + "../node_modules/rxjs/internal/observable/combinelatest.d.ts", + "../node_modules/rxjs/internal/observable/concat.d.ts", + "../node_modules/rxjs/internal/observable/connectableobservable.d.ts", + "../node_modules/rxjs/internal/observable/defer.d.ts", + "../node_modules/rxjs/internal/observable/empty.d.ts", + "../node_modules/rxjs/internal/observable/forkjoin.d.ts", + "../node_modules/rxjs/internal/observable/from.d.ts", + "../node_modules/rxjs/internal/observable/fromevent.d.ts", + "../node_modules/rxjs/internal/observable/fromeventpattern.d.ts", + "../node_modules/rxjs/internal/observable/generate.d.ts", + "../node_modules/rxjs/internal/observable/iif.d.ts", + "../node_modules/rxjs/internal/observable/interval.d.ts", + "../node_modules/rxjs/internal/observable/merge.d.ts", + "../node_modules/rxjs/internal/observable/never.d.ts", + "../node_modules/rxjs/internal/observable/of.d.ts", + "../node_modules/rxjs/internal/observable/onerrorresumenext.d.ts", + "../node_modules/rxjs/internal/observable/pairs.d.ts", + "../node_modules/rxjs/internal/observable/partition.d.ts", + "../node_modules/rxjs/internal/observable/race.d.ts", + "../node_modules/rxjs/internal/observable/range.d.ts", + "../node_modules/rxjs/internal/observable/throwerror.d.ts", + "../node_modules/rxjs/internal/observable/timer.d.ts", + "../node_modules/rxjs/internal/observable/using.d.ts", + "../node_modules/rxjs/internal/observable/zip.d.ts", + "../node_modules/rxjs/internal/operator.d.ts", + "../node_modules/rxjs/internal/operators/groupby.d.ts", + "../node_modules/rxjs/internal/outersubscriber.d.ts", + "../node_modules/rxjs/internal/replaysubject.d.ts", + "../node_modules/rxjs/internal/scheduled/scheduled.d.ts", + "../node_modules/rxjs/internal/scheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/action.d.ts", + "../node_modules/rxjs/internal/scheduler/animationframe.d.ts", + "../node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/asap.d.ts", + "../node_modules/rxjs/internal/scheduler/asapscheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/async.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncaction.d.ts", + "../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/queue.d.ts", + "../node_modules/rxjs/internal/scheduler/queuescheduler.d.ts", + "../node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts", + "../node_modules/rxjs/internal/subject.d.ts", + "../node_modules/rxjs/internal/subscriber.d.ts", + "../node_modules/rxjs/internal/subscription.d.ts", + "../node_modules/rxjs/internal/symbol/observable.d.ts", + "../node_modules/rxjs/internal/types.d.ts", + "../node_modules/rxjs/internal/util/argumentoutofrangeerror.d.ts", + "../node_modules/rxjs/internal/util/emptyerror.d.ts", + "../node_modules/rxjs/internal/util/identity.d.ts", + "../node_modules/rxjs/internal/util/isobservable.d.ts", + "../node_modules/rxjs/internal/util/noop.d.ts", + "../node_modules/rxjs/internal/util/objectunsubscribederror.d.ts", + "../node_modules/rxjs/internal/util/pipe.d.ts", + "../node_modules/rxjs/internal/util/timeouterror.d.ts", + "../node_modules/rxjs/internal/util/unsubscriptionerror.d.ts", + "../node_modules/source-map/source-map.d.ts", + "../node_modules/typeorm/cache/queryresultcache.d.ts", + "../node_modules/typeorm/cache/queryresultcacheoptions.d.ts", + "../node_modules/typeorm/common/deeppartial.d.ts", + "../node_modules/typeorm/common/entitytarget.d.ts", + "../node_modules/typeorm/common/objectliteral.d.ts", + "../node_modules/typeorm/common/objecttype.d.ts", + "../node_modules/typeorm/connection/baseconnectionoptions.d.ts", + "../node_modules/typeorm/connection/connection.d.ts", + "../node_modules/typeorm/connection/connectionmanager.d.ts", + "../node_modules/typeorm/connection/connectionoptions.d.ts", + "../node_modules/typeorm/connection/connectionoptionsreader.d.ts", + "../node_modules/typeorm/container.d.ts", + "../node_modules/typeorm/decorator/check.d.ts", + "../node_modules/typeorm/decorator/columns/column.d.ts", + "../node_modules/typeorm/decorator/columns/createdatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/deletedatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/objectidcolumn.d.ts", + "../node_modules/typeorm/decorator/columns/primarycolumn.d.ts", + "../node_modules/typeorm/decorator/columns/primarygeneratedcolumn.d.ts", + "../node_modules/typeorm/decorator/columns/updatedatecolumn.d.ts", + "../node_modules/typeorm/decorator/columns/versioncolumn.d.ts", + "../node_modules/typeorm/decorator/columns/viewcolumn.d.ts", + "../node_modules/typeorm/decorator/entity-view/viewentity.d.ts", + "../node_modules/typeorm/decorator/entity/childentity.d.ts", + "../node_modules/typeorm/decorator/entity/entity.d.ts", + "../node_modules/typeorm/decorator/entity/tableinheritance.d.ts", + "../node_modules/typeorm/decorator/entityrepository.d.ts", + "../node_modules/typeorm/decorator/exclusion.d.ts", + "../node_modules/typeorm/decorator/generated.d.ts", + "../node_modules/typeorm/decorator/index.d.ts", + "../node_modules/typeorm/decorator/listeners/afterinsert.d.ts", + "../node_modules/typeorm/decorator/listeners/afterload.d.ts", + "../node_modules/typeorm/decorator/listeners/afterremove.d.ts", + "../node_modules/typeorm/decorator/listeners/afterupdate.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeinsert.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeremove.d.ts", + "../node_modules/typeorm/decorator/listeners/beforeupdate.d.ts", + "../node_modules/typeorm/decorator/listeners/eventsubscriber.d.ts", + "../node_modules/typeorm/decorator/options/columncommonoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnembeddedoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnenumoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnhstoreoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnnumericoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnwithlengthoptions.d.ts", + "../node_modules/typeorm/decorator/options/columnwithwidthoptions.d.ts", + "../node_modules/typeorm/decorator/options/entityoptions.d.ts", + "../node_modules/typeorm/decorator/options/indexoptions.d.ts", + "../node_modules/typeorm/decorator/options/joincolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/jointablemultiplecolumnsoptions.d.ts", + "../node_modules/typeorm/decorator/options/jointableoptions.d.ts", + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnnumericoptions.d.ts", + "../node_modules/typeorm/decorator/options/primarygeneratedcolumnuuidoptions.d.ts", + "../node_modules/typeorm/decorator/options/relationoptions.d.ts", + "../node_modules/typeorm/decorator/options/spatialcolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/transactionoptions.d.ts", + "../node_modules/typeorm/decorator/options/valuetransformer.d.ts", + "../node_modules/typeorm/decorator/options/viewcolumnoptions.d.ts", + "../node_modules/typeorm/decorator/options/viewentityoptions.d.ts", + "../node_modules/typeorm/decorator/relations/joincolumn.d.ts", + "../node_modules/typeorm/decorator/relations/jointable.d.ts", + "../node_modules/typeorm/decorator/relations/manytomany.d.ts", + "../node_modules/typeorm/decorator/relations/manytoone.d.ts", + "../node_modules/typeorm/decorator/relations/onetomany.d.ts", + "../node_modules/typeorm/decorator/relations/onetoone.d.ts", + "../node_modules/typeorm/decorator/relations/relationcount.d.ts", + "../node_modules/typeorm/decorator/relations/relationid.d.ts", + "../node_modules/typeorm/decorator/transaction/transaction.d.ts", + "../node_modules/typeorm/decorator/transaction/transactionmanager.d.ts", + "../node_modules/typeorm/decorator/transaction/transactionrepository.d.ts", + "../node_modules/typeorm/decorator/tree/tree.d.ts", + "../node_modules/typeorm/decorator/tree/treechildren.d.ts", + "../node_modules/typeorm/decorator/tree/treelevelcolumn.d.ts", + "../node_modules/typeorm/decorator/tree/treeparent.d.ts", + "../node_modules/typeorm/decorator/unique.d.ts", + "../node_modules/typeorm/driver/aurora-data-api-pg/auroradataapipostgresconnectionoptions.d.ts", + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectioncredentialsoptions.d.ts", + "../node_modules/typeorm/driver/aurora-data-api/auroradataapiconnectionoptions.d.ts", + "../node_modules/typeorm/driver/better-sqlite3/bettersqlite3connectionoptions.d.ts", + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectioncredentialsoptions.d.ts", + "../node_modules/typeorm/driver/cockroachdb/cockroachconnectionoptions.d.ts", + "../node_modules/typeorm/driver/cordova/cordovaconnectionoptions.d.ts", + "../node_modules/typeorm/driver/driver.d.ts", + "../node_modules/typeorm/driver/expo/expoconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mongodb/mongoconnectionoptions.d.ts", + "../node_modules/typeorm/driver/mongodb/mongoqueryrunner.d.ts", + "../node_modules/typeorm/driver/mongodb/typings.d.ts", + "../node_modules/typeorm/driver/mysql/mysqlconnectioncredentialsoptions.d.ts", + "../node_modules/typeorm/driver/mysql/mysqlconnectionoptions.d.ts", + "../node_modules/typeorm/driver/nativescript/nativescriptconnectionoptions.d.ts", + "../node_modules/typeorm/driver/oracle/oracleconnectioncredentialsoptions.d.ts", + "../node_modules/typeorm/driver/oracle/oracleconnectionoptions.d.ts", + "../node_modules/typeorm/driver/postgres/postgresconnectioncredentialsoptions.d.ts", + "../node_modules/typeorm/driver/postgres/postgresconnectionoptions.d.ts", + "../node_modules/typeorm/driver/query.d.ts", + "../node_modules/typeorm/driver/react-native/reactnativeconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sap/sapconnectioncredentialsoptions.d.ts", + "../node_modules/typeorm/driver/sap/sapconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqlinmemory.d.ts", + "../node_modules/typeorm/driver/sqlite/sqliteconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqljs/sqljsconnectionoptions.d.ts", + "../node_modules/typeorm/driver/sqlserver/mssqlparameter.d.ts", + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectioncredentialsoptions.d.ts", + "../node_modules/typeorm/driver/sqlserver/sqlserverconnectionoptions.d.ts", + "../node_modules/typeorm/driver/types/columntypes.d.ts", + "../node_modules/typeorm/driver/types/databasetype.d.ts", + "../node_modules/typeorm/driver/types/datatypedefaults.d.ts", + "../node_modules/typeorm/driver/types/isolationlevel.d.ts", + "../node_modules/typeorm/driver/types/mappedcolumntypes.d.ts", + "../node_modules/typeorm/driver/types/replicationmode.d.ts", + "../node_modules/typeorm/entity-manager/entitymanager.d.ts", + "../node_modules/typeorm/entity-manager/mongoentitymanager.d.ts", + "../node_modules/typeorm/entity-manager/sqljsentitymanager.d.ts", + "../node_modules/typeorm/entity-schema/entityschema.d.ts", + "../node_modules/typeorm/entity-schema/entityschemacheckoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemacolumnoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaexclusionoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaindexoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemaoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemarelationoptions.d.ts", + "../node_modules/typeorm/entity-schema/entityschemauniqueoptions.d.ts", + "../node_modules/typeorm/error/queryfailederror.d.ts", + "../node_modules/typeorm/find-options/findconditions.d.ts", + "../node_modules/typeorm/find-options/findmanyoptions.d.ts", + "../node_modules/typeorm/find-options/findoneoptions.d.ts", + "../node_modules/typeorm/find-options/findoperator.d.ts", + "../node_modules/typeorm/find-options/findoperatortype.d.ts", + "../node_modules/typeorm/find-options/findoptionsutils.d.ts", + "../node_modules/typeorm/find-options/joinoptions.d.ts", + "../node_modules/typeorm/find-options/operator/any.d.ts", + "../node_modules/typeorm/find-options/operator/between.d.ts", + "../node_modules/typeorm/find-options/operator/equal.d.ts", + "../node_modules/typeorm/find-options/operator/ilike.d.ts", + "../node_modules/typeorm/find-options/operator/in.d.ts", + "../node_modules/typeorm/find-options/operator/isnull.d.ts", + "../node_modules/typeorm/find-options/operator/lessthan.d.ts", + "../node_modules/typeorm/find-options/operator/lessthanorequal.d.ts", + "../node_modules/typeorm/find-options/operator/like.d.ts", + "../node_modules/typeorm/find-options/operator/morethan.d.ts", + "../node_modules/typeorm/find-options/operator/morethanorequal.d.ts", + "../node_modules/typeorm/find-options/operator/not.d.ts", + "../node_modules/typeorm/find-options/operator/raw.d.ts", + "../node_modules/typeorm/find-options/orderbycondition.d.ts", + "../node_modules/typeorm/index.d.ts", + "../node_modules/typeorm/logger/advancedconsolelogger.d.ts", + "../node_modules/typeorm/logger/filelogger.d.ts", + "../node_modules/typeorm/logger/logger.d.ts", + "../node_modules/typeorm/logger/loggeroptions.d.ts", + "../node_modules/typeorm/logger/simpleconsolelogger.d.ts", + "../node_modules/typeorm/metadata-args/checkmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/columnmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/discriminatorvaluemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/embeddedmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entitylistenermetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entityrepositorymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/entitysubscribermetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/exclusionmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/generatedmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/indexmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/inheritancemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/joincolumnmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/jointablemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/metadataargsstorage.d.ts", + "../node_modules/typeorm/metadata-args/namingstrategymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationcountmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationidmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/relationmetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/tablemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/transactionentitymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/transactionrepositorymetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/treemetadataargs.d.ts", + "../node_modules/typeorm/metadata-args/types/columnmode.d.ts", + "../node_modules/typeorm/metadata-args/uniquemetadataargs.d.ts", + "../node_modules/typeorm/metadata/checkmetadata.d.ts", + "../node_modules/typeorm/metadata/columnmetadata.d.ts", + "../node_modules/typeorm/metadata/embeddedmetadata.d.ts", + "../node_modules/typeorm/metadata/entitylistenermetadata.d.ts", + "../node_modules/typeorm/metadata/entitymetadata.d.ts", + "../node_modules/typeorm/metadata/exclusionmetadata.d.ts", + "../node_modules/typeorm/metadata/foreignkeymetadata.d.ts", + "../node_modules/typeorm/metadata/indexmetadata.d.ts", + "../node_modules/typeorm/metadata/relationcountmetadata.d.ts", + "../node_modules/typeorm/metadata/relationidmetadata.d.ts", + "../node_modules/typeorm/metadata/relationmetadata.d.ts", + "../node_modules/typeorm/metadata/types/deferrabletype.d.ts", + "../node_modules/typeorm/metadata/types/eventlistenertypes.d.ts", + "../node_modules/typeorm/metadata/types/ondeletetype.d.ts", + "../node_modules/typeorm/metadata/types/onupdatetype.d.ts", + "../node_modules/typeorm/metadata/types/propertytypeinfunction.d.ts", + "../node_modules/typeorm/metadata/types/relationtypeinfunction.d.ts", + "../node_modules/typeorm/metadata/types/relationtypes.d.ts", + "../node_modules/typeorm/metadata/types/tabletypes.d.ts", + "../node_modules/typeorm/metadata/types/treetypes.d.ts", + "../node_modules/typeorm/metadata/uniquemetadata.d.ts", + "../node_modules/typeorm/migration/migration.d.ts", + "../node_modules/typeorm/migration/migrationexecutor.d.ts", + "../node_modules/typeorm/migration/migrationinterface.d.ts", + "../node_modules/typeorm/naming-strategy/defaultnamingstrategy.d.ts", + "../node_modules/typeorm/naming-strategy/namingstrategyinterface.d.ts", + "../node_modules/typeorm/platform/platformtools.d.ts", + "../node_modules/typeorm/query-builder/alias.d.ts", + "../node_modules/typeorm/query-builder/brackets.d.ts", + "../node_modules/typeorm/query-builder/deletequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/insertquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/joinattribute.d.ts", + "../node_modules/typeorm/query-builder/querybuilder.d.ts", + "../node_modules/typeorm/query-builder/queryexpressionmap.d.ts", + "../node_modules/typeorm/query-builder/querypartialentity.d.ts", + "../node_modules/typeorm/query-builder/relation-count/relationcountattribute.d.ts", + "../node_modules/typeorm/query-builder/relation-id/relationidattribute.d.ts", + "../node_modules/typeorm/query-builder/relationidloader.d.ts", + "../node_modules/typeorm/query-builder/relationloader.d.ts", + "../node_modules/typeorm/query-builder/relationquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/result/deleteresult.d.ts", + "../node_modules/typeorm/query-builder/result/insertresult.d.ts", + "../node_modules/typeorm/query-builder/result/updateresult.d.ts", + "../node_modules/typeorm/query-builder/selectquery.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilder.d.ts", + "../node_modules/typeorm/query-builder/selectquerybuilderoption.d.ts", + "../node_modules/typeorm/query-builder/softdeletequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/transformer/plainobjecttonewentitytransformer.d.ts", + "../node_modules/typeorm/query-builder/updatequerybuilder.d.ts", + "../node_modules/typeorm/query-builder/whereexpression.d.ts", + "../node_modules/typeorm/query-runner/queryrunner.d.ts", + "../node_modules/typeorm/repository/abstractrepository.d.ts", + "../node_modules/typeorm/repository/baseentity.d.ts", + "../node_modules/typeorm/repository/mongorepository.d.ts", + "../node_modules/typeorm/repository/removeoptions.d.ts", + "../node_modules/typeorm/repository/repository.d.ts", + "../node_modules/typeorm/repository/saveoptions.d.ts", + "../node_modules/typeorm/repository/treerepository.d.ts", + "../node_modules/typeorm/schema-builder/options/tablecheckoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tablecolumnoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableexclusionoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableforeignkeyoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableindexoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/tableuniqueoptions.d.ts", + "../node_modules/typeorm/schema-builder/options/viewoptions.d.ts", + "../node_modules/typeorm/schema-builder/schemabuilder.d.ts", + "../node_modules/typeorm/schema-builder/table/table.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecheck.d.ts", + "../node_modules/typeorm/schema-builder/table/tablecolumn.d.ts", + "../node_modules/typeorm/schema-builder/table/tableexclusion.d.ts", + "../node_modules/typeorm/schema-builder/table/tableforeignkey.d.ts", + "../node_modules/typeorm/schema-builder/table/tableindex.d.ts", + "../node_modules/typeorm/schema-builder/table/tableunique.d.ts", + "../node_modules/typeorm/schema-builder/view/view.d.ts", + "../node_modules/typeorm/subscriber/broadcaster.d.ts", + "../node_modules/typeorm/subscriber/broadcasterresult.d.ts", + "../node_modules/typeorm/subscriber/entitysubscriberinterface.d.ts", + "../node_modules/typeorm/subscriber/event/insertevent.d.ts", + "../node_modules/typeorm/subscriber/event/loadevent.d.ts", + "../node_modules/typeorm/subscriber/event/removeevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactioncommitevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactionrollbackevent.d.ts", + "../node_modules/typeorm/subscriber/event/transactionstartevent.d.ts", + "../node_modules/typeorm/subscriber/event/updateevent.d.ts", + "../node_modules/typescript/lib/lib.dom.d.ts", + "../node_modules/typescript/lib/lib.dom.iterable.d.ts", + "../node_modules/typescript/lib/lib.es2015.collection.d.ts", + "../node_modules/typescript/lib/lib.es2015.core.d.ts", + "../node_modules/typescript/lib/lib.es2015.d.ts", + "../node_modules/typescript/lib/lib.es2015.generator.d.ts", + "../node_modules/typescript/lib/lib.es2015.iterable.d.ts", + "../node_modules/typescript/lib/lib.es2015.promise.d.ts", + "../node_modules/typescript/lib/lib.es2015.proxy.d.ts", + "../node_modules/typescript/lib/lib.es2015.reflect.d.ts", + "../node_modules/typescript/lib/lib.es2015.symbol.d.ts", + "../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts", + "../node_modules/typescript/lib/lib.es2016.array.include.d.ts", + "../node_modules/typescript/lib/lib.es2016.d.ts", + "../node_modules/typescript/lib/lib.es2017.d.ts", + "../node_modules/typescript/lib/lib.es2017.full.d.ts", + "../node_modules/typescript/lib/lib.es2017.intl.d.ts", + "../node_modules/typescript/lib/lib.es2017.object.d.ts", + "../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts", + "../node_modules/typescript/lib/lib.es2017.string.d.ts", + "../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts", + "../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts", + "../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts", + "../node_modules/typescript/lib/lib.es2018.d.ts", + "../node_modules/typescript/lib/lib.es2018.intl.d.ts", + "../node_modules/typescript/lib/lib.es2018.promise.d.ts", + "../node_modules/typescript/lib/lib.es2018.regexp.d.ts", + "../node_modules/typescript/lib/lib.es2020.bigint.d.ts", + "../node_modules/typescript/lib/lib.es5.d.ts", + "../node_modules/typescript/lib/lib.esnext.intl.d.ts", + "../node_modules/typescript/lib/lib.scripthost.d.ts", + "../node_modules/typescript/lib/lib.webworker.importscripts.d.ts", + "../node_modules/winston-transport/index.d.ts", + "../node_modules/winston/index.d.ts", + "../node_modules/winston/lib/winston/config/index.d.ts", + "../node_modules/winston/lib/winston/transports/index.d.ts", + "../src/app/app.controller.ts", + "../src/app/app.module.ts", + "../src/app/app.service.ts", + "../src/app/core/auth/auth.module.ts", + "../src/app/core/auth/controllers/auth.controller.ts", + "../src/app/core/auth/decorators/get-user.decorator.ts", + "../src/app/core/auth/decorators/roles.decorator.ts", + "../src/app/core/auth/guards/roles.guard.ts", + "../src/app/core/auth/model/login.dto.ts", + "../src/app/core/auth/model/roles.enum.ts", + "../src/app/core/auth/model/user-request.interface.ts", + "../src/app/core/auth/services/auth.service.ts", + "../src/app/core/auth/strategies/jwt.strategy.ts", + "../src/app/core/core.module.ts", + "../src/app/core/user/model/dto/user-payload.dto.ts", + "../src/app/core/user/model/entities/user.entity.ts", + "../src/app/core/user/services/user.service.ts", + "../src/app/core/user/user.module.ts", + "../src/app/event/controllers/event.crud.controller.ts", + "../src/app/event/event.module.ts", + "../src/app/event/model/entities/event.entity.ts", + "../src/app/event/services/event.crud.service.ts", + "../src/app/queue-detail/controllers/queue-detail.crud.controller.ts", + "../src/app/queue-detail/model/entities/queue-detail.entity.ts", + "../src/app/queue-detail/model/entities/queuedetail.dto.ts", + "../src/app/queue-detail/queue-detail.module.ts", + "../src/app/queue-detail/services/queue-detail.crud.service.ts", + "../src/app/shared/exceptions/business-logic.exception.ts", + "../src/app/shared/filters/business-logic.filter.ts", + "../src/app/shared/logger/winston.logger.ts", + "../src/app/shared/model/config/config.model.ts", + "../src/app/shared/model/entities/base-entity.entity.ts", + "../src/config/default.ts", + "../src/config/develop.ts", + "../src/config/production.ts", + "../src/config/test.ts", + "../src/config/uat.ts", + "../src/main.ts", + "../src/migration/1609823263069-createtables.ts", + "../src/migration/1609823284132-insertdata.ts" + ] + }, + "version": "4.1.3" +} \ No newline at end of file diff --git a/node_development/node_backend/docker-compose.yml b/node_development/node_backend/docker-compose.yml new file mode 100644 index 0000000..5e29913 --- /dev/null +++ b/node_development/node_backend/docker-compose.yml @@ -0,0 +1,2 @@ +version: '3' +services: diff --git a/node_development/node_backend/nest-cli.json b/node_development/node_backend/nest-cli.json new file mode 100644 index 0000000..c435f27 --- /dev/null +++ b/node_development/node_backend/nest-cli.json @@ -0,0 +1,9 @@ +{ + "collection": "@devon4node/schematics", + "sourceRoot": "src", + "compilerOptions": { + "plugins": [ + "@nestjs/swagger/plugin" + ] + } +} \ No newline at end of file diff --git a/node_development/node_backend/ormconfig.json b/node_development/node_backend/ormconfig.json new file mode 100644 index 0000000..d5a74e9 --- /dev/null +++ b/node_development/node_backend/ormconfig.json @@ -0,0 +1,21 @@ +{ + "type": "sqlite", + "database": ":memory:", + "synchronize": false, + "migrationsRun": true, + "logging": true, + "entities": [ + "dist/**/*.entity.js" + ], + "migrations": [ + "dist/migration/**/*.js" + ], + "subscribers": [ + "dist/subscriber/**/*.js" + ], + "cli": { + "entitiesDir": "src/entity", + "migrationsDir": "src/migration", + "subscribersDir": "src/subscriber" + } +} diff --git a/node_development/node_backend/package.json b/node_development/node_backend/package.json new file mode 100644 index 0000000..a4a278e --- /dev/null +++ b/node_development/node_backend/package.json @@ -0,0 +1,100 @@ +{ + "name": "jdq-backend", + "version": "0.0.1", + "description": "", + "author": "", + "private": true, + "license": "UNLICENSED", + "scripts": { + "prebuild": "rimraf dist", + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint {src,apps,libs,test}/**/*.ts --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json" + }, + "dependencies": { + "@nestjs/common": "^7.5.1", + "@nestjs/core": "^7.5.1", + "@nestjs/platform-express": "^7.5.1", + "reflect-metadata": "^0.1.13", + "rimraf": "^3.0.2", + "rxjs": "^6.6.3", + "winston": "^3.2.1", + "class-transformer": "^0.2.3", + "class-validator": "^0.11.1", + "@devon4node/common": "^2.0.0", + "@devon4node/config": "^2.0.0", + "@nestjs/typeorm": "^7.0.0", + "typeorm": "^0.2.24", + "sqlite3": "^4.1.1", + "helmet": "^3.21.3", + "@nestjs/swagger": "^4.4.0", + "swagger-ui-express": "^4.1.4", + "@nestjs/passport": "^7.0.0", + "@nestjs/jwt": "^7.0.0", + "passport-jwt": "^4.0.0", + "bcrypt": "^4.0.1", + "passport": "^0.4.1", + "lodash": "^4.17.15", + "@nestjsx/crud": "^4.4.2", + "@nestjsx/crud-typeorm": "^4.4.2" + }, + "devDependencies": { + "@nestjs/cli": "^7.5.1", + "@nestjs/schematics": "^7.1.3", + "@nestjs/testing": "^7.5.1", + "@types/express": "^4.17.8", + "@types/jest": "^26.0.15", + "@types/node": "^14.14.6", + "@types/supertest": "^2.0.10", + "@typescript-eslint/eslint-plugin": "^4.6.1", + "@typescript-eslint/parser": "^4.6.1", + "eslint": "^7.12.1", + "eslint-config-prettier": "7.1.0", + "eslint-plugin-prettier": "^3.1.2", + "jest": "^26.6.3", + "prettier": "^2.1.2", + "supertest": "^6.0.0", + "ts-jest": "^26.4.3", + "ts-loader": "^8.0.8", + "ts-node": "^9.0.0", + "tsconfig-paths": "^3.9.0", + "typescript": "^4.0.5", + "husky": "^4.2.3", + "pretty-quick": "^2.0.1", + "@types/helmet": "^0.0.45", + "@types/passport-jwt": "^3.0.3", + "@types/bcrypt": "^3.0.0", + "@types/lodash": "^4.14.149" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + }, + "husky": { + "hooks": { + "pre-commit": "pretty-quick --staged && eslint --cache --fix" + } + } +} \ No newline at end of file diff --git a/node_development/node_backend/src/app/app.controller.spec.ts b/node_development/node_backend/src/app/app.controller.spec.ts new file mode 100644 index 0000000..d22f389 --- /dev/null +++ b/node_development/node_backend/src/app/app.controller.spec.ts @@ -0,0 +1,22 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; + +describe('AppController', () => { + let appController: AppController; + + beforeEach(async () => { + const app: TestingModule = await Test.createTestingModule({ + controllers: [AppController], + providers: [AppService], + }).compile(); + + appController = app.get(AppController); + }); + + describe('root', () => { + it('should return "Hello World!"', () => { + expect(appController.getHello()).toBe('Hello World!'); + }); + }); +}); diff --git a/node_development/node_backend/src/app/app.controller.ts b/node_development/node_backend/src/app/app.controller.ts new file mode 100644 index 0000000..cce879e --- /dev/null +++ b/node_development/node_backend/src/app/app.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; + +@Controller() +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get() + getHello(): string { + return this.appService.getHello(); + } +} diff --git a/node_development/node_backend/src/app/app.module.ts b/node_development/node_backend/src/app/app.module.ts new file mode 100644 index 0000000..8eed885 --- /dev/null +++ b/node_development/node_backend/src/app/app.module.ts @@ -0,0 +1,13 @@ +import { Module } from '@nestjs/common'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; +import { CoreModule } from './core/core.module'; +import { EventModule } from './event/event.module'; +import { QueueDetailModule } from './queue-detail/queue-detail.module'; + +@Module({ + imports: [CoreModule, EventModule, QueueDetailModule], + controllers: [AppController], + providers: [AppService], +}) +export class AppModule {} diff --git a/node_development/node_backend/src/app/app.service.ts b/node_development/node_backend/src/app/app.service.ts new file mode 100644 index 0000000..927d7cc --- /dev/null +++ b/node_development/node_backend/src/app/app.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AppService { + getHello(): string { + return 'Hello World!'; + } +} diff --git a/node_development/node_backend/src/app/core/auth/auth.module.ts b/node_development/node_backend/src/app/core/auth/auth.module.ts new file mode 100644 index 0000000..d404246 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/auth.module.ts @@ -0,0 +1,23 @@ +import { Module } from '@nestjs/common'; +import { JwtModule } from '@nestjs/jwt'; +import { PassportModule } from '@nestjs/passport'; +import { AuthController } from './controllers/auth.controller'; +import { AuthService } from './services/auth.service'; +import { JwtStrategy } from './strategies/jwt.strategy'; +import { ConfigModule, ConfigService } from '@devon4node/config'; +import { Config } from '../../shared/model/config/config.model'; + +@Module({ + imports: [ + PassportModule.register({ defaultStrategy: 'jwt' }), + JwtModule.registerAsync({ + imports: [ConfigModule], + useFactory: (config: ConfigService) => config.values.jwtConfig, + inject: [ConfigService], + }), + ], + providers: [AuthService, JwtStrategy], + exports: [AuthService, PassportModule], + controllers: [AuthController], +}) +export class AuthModule {} diff --git a/node_development/node_backend/src/app/core/auth/controllers/auth.controller.spec.ts b/node_development/node_backend/src/app/core/auth/controllers/auth.controller.spec.ts new file mode 100644 index 0000000..dcf4dad --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/controllers/auth.controller.spec.ts @@ -0,0 +1,96 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AuthServiceMock } from '../../../../../test/auth/auth.service.mock'; +import { AuthService } from '../services/auth.service'; +import { AuthController } from './auth.controller'; +import { PassportModule } from '@nestjs/passport'; +import { UnauthorizedException, BadRequestException } from '@nestjs/common'; + +describe('Auth Controller', () => { + let controller: AuthController; + + beforeAll(async () => { + const module: TestingModule = await Test.createTestingModule({ + imports: [PassportModule.register({ defaultStrategy: 'none' })], + controllers: [AuthController], + providers: [ + { + provide: AuthService, + useClass: AuthServiceMock, + }, + ], + }).compile(); + + controller = module.get(AuthController); + }); + + it('should be defined after module initialization', () => { + expect(controller).toBeDefined(); + }); + + describe('login', () => { + it('should return the JWT token when the user is correct', async () => { + const user: any = { + username: 'user1', + password: 'user1', + }; + + const sendMock = { + send: jest.fn(), + }; + const mockResponse: any = { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + status: jest.fn().mockImplementation(_x => sendMock), + setHeader: jest.fn(), + }; + const value = await controller.login(user, mockResponse); + expect(value).toBeUndefined(); + expect(mockResponse.status).toBeCalledWith(200); + expect(sendMock.send).toBeCalledWith(); + expect(mockResponse.setHeader).toBeCalledWith('Authorization', 'Bearer THISISNOTAJWTTOKEN'); + }); + it('should throw an error when the username or password are not correct', async () => { + await expect( + controller.login( + { + username: 'user2', + password: 'user1', + }, + // response not needed + {} as any, + ), + ).rejects.toThrow(UnauthorizedException); + }); + }); + + describe('register', () => { + it('should register the user if not exists', async () => { + await expect( + controller.register({ + username: 'user2', + password: 'user2', + role: 1, + } as any), + ).resolves.toEqual({ username: 'user2', role: 1 }); + }); + it('should throw an error when user already exists', async () => { + await expect( + controller.register({ + username: 'user1', + password: 'user1', + role: 1, + } as any), + ).rejects.toThrow(BadRequestException); + }); + }); + + describe('currentUser', () => { + it('should return the validated user in the request', () => { + const user: any = { + username: 'user1', + }; + expect(controller.currentUser(user)).toEqual(user); + }); + // The auth guard will rejects all request if the user is not present or invalid, + // so we do not need to test those use case here. + }); +}); diff --git a/node_development/node_backend/src/app/core/auth/controllers/auth.controller.ts b/node_development/node_backend/src/app/core/auth/controllers/auth.controller.ts new file mode 100644 index 0000000..e6a8503 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/controllers/auth.controller.ts @@ -0,0 +1,38 @@ +import { BadRequestException, Body, Controller, Get, HttpCode, Post, UseGuards } from '@nestjs/common'; +import { AuthGuard } from '@nestjs/passport'; +import { User } from '../../user/model/entities/user.entity'; +import { AuthService } from '../services/auth.service'; +import { GetUser } from '../decorators/get-user.decorator'; + +@Controller('auth') +export class AuthController { + constructor(private readonly authService: AuthService) { } + @Post('login') + @HttpCode(200) + async login(@Body() user: User): Promise { + // const login = await this.authService.login(user); + // return login; + return this.authService.login(user); + } + + @Post('register') + async register(@Body() user: User): Promise { + try { + const registered = await this.authService.register(user); + return registered; + } catch (e) { + throw new BadRequestException(e.message); + } + } + + @Get('users') + async getUsers(): Promise<[User[], number]> { + return await this.authService.getUsers(); + } + + @Get('currentuser') + @UseGuards(AuthGuard()) + currentUser(@GetUser() user: User): User { + return user; + } +} diff --git a/node_development/node_backend/src/app/core/auth/decorators/get-user.decorator.ts b/node_development/node_backend/src/app/core/auth/decorators/get-user.decorator.ts new file mode 100644 index 0000000..0fff802 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/decorators/get-user.decorator.ts @@ -0,0 +1,11 @@ +/* istanbul ignore file */ +import { createParamDecorator, ExecutionContext } from '@nestjs/common'; + +export const GetUser = createParamDecorator((_data: unknown, ctx: ExecutionContext) => { + if (ctx.getType() === 'http') { + const request = ctx.switchToHttp().getRequest(); + return request.user; + } + + return undefined; +}); diff --git a/node_development/node_backend/src/app/core/auth/decorators/roles.decorator.spec.ts b/node_development/node_backend/src/app/core/auth/decorators/roles.decorator.spec.ts new file mode 100644 index 0000000..f994caa --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/decorators/roles.decorator.spec.ts @@ -0,0 +1,24 @@ +import { Roles } from './roles.decorator'; +import { roles } from '../model/roles.enum'; +import { Reflector } from '@nestjs/core'; + +@Roles(roles.USER, roles.ADMIN) +class RolesTest { + // eslint-disable-next-line @typescript-eslint/no-empty-function + constructor() {} + + @Roles(roles.ADMIN) + // eslint-disable-next-line @typescript-eslint/no-empty-function + oneHandler(): void {} +} + +describe('Roles', () => { + it('should reflect metadata in the class and methods', () => { + const reflector = new Reflector(); + + expect(reflector.get('roles', RolesTest)).toStrictEqual([roles.USER, roles.ADMIN]); + expect(reflector.get('roles', RolesTest)).not.toStrictEqual([roles.USER]); + expect(reflector.get('roles', RolesTest)).not.toStrictEqual([roles.ADMIN]); + expect(reflector.get('roles', RolesTest.prototype.oneHandler)).toStrictEqual([roles.ADMIN]); + }); +}); diff --git a/node_development/node_backend/src/app/core/auth/decorators/roles.decorator.ts b/node_development/node_backend/src/app/core/auth/decorators/roles.decorator.ts new file mode 100644 index 0000000..41b4a6e --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/decorators/roles.decorator.ts @@ -0,0 +1,3 @@ +import { SetMetadata, CustomDecorator } from '@nestjs/common'; + +export const Roles = (...roles: number[]): CustomDecorator => SetMetadata('roles', roles); diff --git a/node_development/node_backend/src/app/core/auth/guards/roles.guard.spec.ts b/node_development/node_backend/src/app/core/auth/guards/roles.guard.spec.ts new file mode 100644 index 0000000..9c95ec7 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/guards/roles.guard.spec.ts @@ -0,0 +1,57 @@ +import { RolesGuard } from './roles.guard'; +import { Reflector } from '@nestjs/core'; +import { roles } from '../model/roles.enum'; + +function generateMockExecutionContext(role: number): any { + return { + switchToHttp: (): any => { + return { + getRequest: (): any => { + return { + user: { + role, + }, + }; + }, + }; + }, + getHandler: (): undefined => undefined, + getClass: (): undefined => undefined, + }; +} + +describe('RolesGuard', () => { + describe('canActivate', () => { + let guard: RolesGuard; + beforeEach(async () => { + const reflector = new Reflector(); + // tslint:disable-next-line: variable-name + jest + .spyOn(reflector, 'get') + .mockImplementationOnce(() => [roles.USER]) + .mockImplementationOnce(() => [roles.ADMIN]) + .mockImplementationOnce(() => [roles.ADMIN, roles.USER]) + .mockImplementation(() => undefined); + guard = new RolesGuard(reflector); + }); + it('should return true when the role of the user is in the roles array reflected by the handler or class', () => { + const mockExecutionContext: any = generateMockExecutionContext(roles.USER); + expect(guard.canActivate(mockExecutionContext as any)).toBe(true); + expect(guard.canActivate(mockExecutionContext as any)).toBe(false); + expect(guard.canActivate(mockExecutionContext as any)).toBe(true); + }); + it('should return false when the role of the user is not in the roles array reflected by the handler or class', () => { + const mockExecutionContext: any = generateMockExecutionContext(roles.ADMIN); + expect(guard.canActivate(mockExecutionContext as any)).toBe(false); + expect(guard.canActivate(mockExecutionContext as any)).toBe(true); + expect(guard.canActivate(mockExecutionContext as any)).toBe(true); + }); + it('should return true if no role metadata is defined', () => { + const mockExecutionContext: any = generateMockExecutionContext(roles.ADMIN); + guard.canActivate(mockExecutionContext as any); + guard.canActivate(mockExecutionContext as any); + guard.canActivate(mockExecutionContext as any); + expect(guard.canActivate(mockExecutionContext as any)).toBe(true); + }); + }); +}); diff --git a/node_development/node_backend/src/app/core/auth/guards/roles.guard.ts b/node_development/node_backend/src/app/core/auth/guards/roles.guard.ts new file mode 100644 index 0000000..1b6bed9 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/guards/roles.guard.ts @@ -0,0 +1,21 @@ +import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common'; +import { Reflector } from '@nestjs/core'; + +@Injectable() +export class RolesGuard implements CanActivate { + constructor(private readonly reflector: Reflector) {} + + canActivate(context: ExecutionContext): boolean { + const rol = + this.reflector.get('roles', context.getHandler()) || + this.reflector.get('roles', context.getClass()); + if (!rol) { + return true; + } + const request = context.switchToHttp().getRequest(); + const user = request.user; + const hasRole = (): boolean => rol.includes(user.role); + + return user !== undefined && user.role !== undefined && hasRole(); + } +} diff --git a/node_development/node_backend/src/app/core/auth/model/login.dto.ts b/node_development/node_backend/src/app/core/auth/model/login.dto.ts new file mode 100644 index 0000000..048ba07 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/model/login.dto.ts @@ -0,0 +1,11 @@ +import { User } from '../../user/model/entities/user.entity'; +import { IsDefined, IsString } from 'class-validator'; + +export class LoginDTO implements Pick { + @IsDefined() + @IsString() + username!: string; + @IsDefined() + @IsString() + password!: string; +} diff --git a/node_development/node_backend/src/app/core/auth/model/roles.enum.ts b/node_development/node_backend/src/app/core/auth/model/roles.enum.ts new file mode 100644 index 0000000..ba50c94 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/model/roles.enum.ts @@ -0,0 +1,4 @@ +export enum roles { + USER, + ADMIN, +} diff --git a/node_development/node_backend/src/app/core/auth/model/user-request.interface.ts b/node_development/node_backend/src/app/core/auth/model/user-request.interface.ts new file mode 100644 index 0000000..8ec2c54 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/model/user-request.interface.ts @@ -0,0 +1,7 @@ +import { Request } from 'express'; + +interface IUserRequest extends Request { + user: any; +} + +export type UserRequest = IUserRequest; diff --git a/node_development/node_backend/src/app/core/auth/services/auth.service.spec.ts b/node_development/node_backend/src/app/core/auth/services/auth.service.spec.ts new file mode 100644 index 0000000..46cbd46 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/services/auth.service.spec.ts @@ -0,0 +1,105 @@ +process.env.NODE_ENV = 'test'; +import { UnauthorizedException } from '@nestjs/common'; +import { JwtModule } from '@nestjs/jwt'; +import { Test, TestingModule } from '@nestjs/testing'; +import { UserRepositoryMock } from '../../../../../test/user/user.repository.mock'; +import { UserService } from '../../user/services/user.service'; +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let authService: AuthService; + let userService: UserService; + + beforeAll(async () => { + const module: TestingModule = await Test.createTestingModule({ + imports: [ + JwtModule.register({ + secret: 'SECRET', + signOptions: { expiresIn: '60s' }, + }), + ], + providers: [ + AuthService, + UserService, + { + provide: 'UserRepository', + useClass: UserRepositoryMock, + }, + ], + }).compile(); + + authService = module.get(AuthService); + userService = module.get(UserService); + }); + + it('should be defined after module initialization', () => { + expect(authService).toBeDefined(); + expect(userService).toBeDefined(); + }); + + describe('validateUser', () => { + it('should validate that the user and return it when the user exists and password match.', async () => { + await expect(authService.validateUser('user1', 'user1')).resolves.toStrictEqual({ + id: 1, + username: 'user1', + // password: 'user1', + password: '$2b$12$KgUSTFUTjRqQD7U7tuV9quheR4L.LOAT.GhmTjBIXsgLMhBXjfhYq', + role: 0, + }); + await expect(authService.validateUser('user2', 'user2')).resolves.toStrictEqual({ + id: 2, + username: 'user2', + // password: 'user2', + password: '$2b$12$jDy/bJV0p6mYRlEjZL5t0OX9jinlfEiQDfuApJJGSVW6Ca/hiVbBW', + role: 1, + }); + }); + it('should return undefined when the user does not exists or password does not match.', async () => { + await expect(authService.validateUser('test', 'user1')).resolves.toBeUndefined(); + await expect(authService.validateUser('user1', 'test')).resolves.toBeUndefined(); + }); + }); + + describe('login', () => { + it('should return a JWT token when a valid user is provided', async () => { + const token = await authService.login({ + username: 'user1', + password: 'user1', + } as any); + + expect(token).toBeDefined(); + expect(typeof token).toBe('string'); + }); + it('should return a exception when a invalid user is provided', async () => { + await expect( + authService.login({ + username: 'user1', + password: 'user2', + } as any), + ).rejects.toThrow(UnauthorizedException); + }); + }); + + describe('register', () => { + it('should register a new user if not exists', async () => { + const newUser: any = { + id: 3, + username: 'user3', + password: 'user3', + }; + + const user = await authService.register(newUser); + expect(user).toBeDefined(); + expect(user).toEqual(await userService.findOne('user3')); + }); + it('should throw an error if user exists', async () => { + const newUser: any = { + id: 3, + username: 'user3', + password: 'user3', + }; + + await expect(authService.register(newUser)).rejects.toThrow('User already exists'); + }); + }); +}); diff --git a/node_development/node_backend/src/app/core/auth/services/auth.service.ts b/node_development/node_backend/src/app/core/auth/services/auth.service.ts new file mode 100644 index 0000000..3dd9b51 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/services/auth.service.ts @@ -0,0 +1,38 @@ +import { Injectable, UnauthorizedException } from '@nestjs/common'; +import { compare } from 'bcrypt'; +import { classToPlain } from 'class-transformer'; +import { UserService } from '../../user/services/user.service'; +import { User } from '../../user/model/entities/user.entity'; +import { LoginDTO } from '../model/login.dto'; + +@Injectable() +export class AuthService { + + constructor(private readonly usersService: UserService) { } + + async validateUser(username: string, pass: string): Promise { + const user = await this.usersService.findOne(username); + if (user && (await compare(pass, user.password!))) { + return classToPlain(user) as User; + } + return undefined; + } + + async login(user: LoginDTO): Promise { + const payload = await this.validateUser(user.username!, user.password!); + + if (!payload) { + throw new UnauthorizedException('Wrong username or password'); + } + + return payload; + } + + register(user: User): Promise { + return this.usersService.registerUser(user); + } + + getUsers(): Promise<[User[], number]> { + return this.usersService.getUsers(); + } +} diff --git a/node_development/node_backend/src/app/core/auth/strategies/jwt.strategy.spec.ts b/node_development/node_backend/src/app/core/auth/strategies/jwt.strategy.spec.ts new file mode 100644 index 0000000..bb002bf --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/strategies/jwt.strategy.spec.ts @@ -0,0 +1,16 @@ +import { JwtStrategy } from './jwt.strategy'; +import { UserPayload } from '../../user/model/dto/user-payload.dto'; +describe('JwtStrategy', () => { + describe('validate', () => { + it('should validate the payload received in the JWT token and should return it', () => { + const jwtConfig: any = { values: { jwtConfig: { secret: 'SECRET' } } }; + const jwtStrategy = new JwtStrategy(jwtConfig); + const inputPayload: UserPayload = { id: 0, username: 'test', role: 0 }; + + expect(jwtStrategy.validate(inputPayload)).resolves.toStrictEqual(inputPayload); + expect(jwtStrategy.validate(inputPayload)).resolves.not.toStrictEqual({ + id: 1, + }); + }); + }); +}); diff --git a/node_development/node_backend/src/app/core/auth/strategies/jwt.strategy.ts b/node_development/node_backend/src/app/core/auth/strategies/jwt.strategy.ts new file mode 100644 index 0000000..da2f8c6 --- /dev/null +++ b/node_development/node_backend/src/app/core/auth/strategies/jwt.strategy.ts @@ -0,0 +1,20 @@ +import { Injectable } from '@nestjs/common'; +import { PassportStrategy } from '@nestjs/passport'; +import { ExtractJwt, Strategy } from 'passport-jwt'; +import { ConfigService } from '@devon4node/config'; +import { Config } from '../../../shared/model/config/config.model'; + +@Injectable() +export class JwtStrategy extends PassportStrategy(Strategy) { + constructor(public readonly configService: ConfigService) { + super({ + jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), + ignoreExpiration: false, + secretOrKey: configService.values.jwtConfig.secret, + }); + } + + async validate(payload: any): Promise { + return payload; + } +} diff --git a/node_development/node_backend/src/app/core/core.module.ts b/node_development/node_backend/src/app/core/core.module.ts new file mode 100644 index 0000000..5892afe --- /dev/null +++ b/node_development/node_backend/src/app/core/core.module.ts @@ -0,0 +1,37 @@ +import { Global, Module } from '@nestjs/common'; +import { ClassSerializerInterceptor } from '@devon4node/common/serializer'; +import { APP_INTERCEPTOR, APP_FILTER } from '@nestjs/core'; +import { WinstonLogger } from '../shared/logger/winston.logger'; +import { BusinessLogicFilter } from '../shared/filters/business-logic.filter'; +import { ConfigModule, ConfigService } from '@devon4node/config'; +import { Config } from '../shared/model/config/config.model'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { AuthModule } from './auth/auth.module'; +import { UserModule } from './user/user.module'; + +@Global() +@Module({ + imports: [ + UserModule, + AuthModule, + TypeOrmModule.forRootAsync({ + imports: [ConfigModule], + useFactory: (config: ConfigService) => { + return config.values.database; + }, + inject: [ConfigService], + }), + ConfigModule.forRoot({ + configPrefix: 'devon4node', + configType: Config, + }), + ], + controllers: [], + providers: [ + { provide: APP_FILTER, useClass: BusinessLogicFilter }, + { provide: APP_INTERCEPTOR, useClass: ClassSerializerInterceptor }, + WinstonLogger, + ], + exports: [UserModule, AuthModule, ConfigModule, WinstonLogger], +}) +export class CoreModule {} diff --git a/node_development/node_backend/src/app/core/user/model/dto/user-payload.dto.ts b/node_development/node_backend/src/app/core/user/model/dto/user-payload.dto.ts new file mode 100644 index 0000000..7c0ad2d --- /dev/null +++ b/node_development/node_backend/src/app/core/user/model/dto/user-payload.dto.ts @@ -0,0 +1,7 @@ +import { User } from '../entities/user.entity'; + +export class UserPayload implements Pick { + id!: number; + username!: string; + role!: number; +} diff --git a/node_development/node_backend/src/app/core/user/model/entities/user.entity.ts b/node_development/node_backend/src/app/core/user/model/entities/user.entity.ts new file mode 100644 index 0000000..c134b65 --- /dev/null +++ b/node_development/node_backend/src/app/core/user/model/entities/user.entity.ts @@ -0,0 +1,58 @@ +import { ApiPropertyOptional } from '@nestjs/swagger'; +import { CrudValidationGroups } from '@nestjsx/crud'; +import { Exclude } from 'class-transformer'; +import { IsDefined, IsOptional, MaxLength } from 'class-validator'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from '../../../../shared/model/entities/base-entity.entity'; +import { roles } from '../../../auth/model/roles.enum'; + +@Entity() +export class User extends BaseEntity { + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + username!: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + name?: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + phoneNumber?: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + @Exclude({ toPlainOnly: true }) + password!: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @Column('int', { nullable: true, default: 1 }) + acceptedCommercial?: number; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @Column('int', { nullable: true, default: 1 }) + acceptedTerms?: number; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @Column('int', { nullable: false, default: roles.USER }) + role!: number; +} diff --git a/node_development/node_backend/src/app/core/user/services/user.service.spec.ts b/node_development/node_backend/src/app/core/user/services/user.service.spec.ts new file mode 100644 index 0000000..8935f3c --- /dev/null +++ b/node_development/node_backend/src/app/core/user/services/user.service.spec.ts @@ -0,0 +1,66 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { UserService } from './user.service'; +import { UserRepositoryMock } from '../../../../../test/user/user.repository.mock'; +import { plainToClass } from 'class-transformer'; +import { User } from '../model/entities/user.entity'; + +describe('UserService', () => { + let service: UserService; + let repository: UserRepositoryMock; + + beforeAll(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + UserService, + { + provide: 'UserRepository', + useClass: UserRepositoryMock, + }, + ], + }).compile(); + + service = module.get(UserService); + repository = module.get('UserRepository'); + }); + + it('should be defined after module initialization', () => { + expect(service).toBeDefined(); + expect(repository).toBeDefined(); + }); + + describe('findOne', () => { + it('should return the user when exists', async () => { + await expect(service.findOne('user1')).resolves.toStrictEqual({ + id: 1, + username: 'user1', + // password: 'user1', + password: '$2b$12$KgUSTFUTjRqQD7U7tuV9quheR4L.LOAT.GhmTjBIXsgLMhBXjfhYq', + role: 0, + }); + }); + + it('should return undefined when the user does not exists', async () => { + await expect(service.findOne('usernotdefined')).resolves.toBeUndefined(); + }); + }); + + describe('registerUser', () => { + it('should register a new user if it does not exists', async () => { + const userToAdd: any = { + username: 'user3', + password: 'user3', + }; + const userRegistered = await service.registerUser(userToAdd); + + expect(userRegistered).toStrictEqual(plainToClass(User, repository.users[2])); + }); + + it('should throw an Error when user already exists', async () => { + const userToAdd: any = { + username: 'user3', + password: 'user3', + }; + await expect(service.registerUser(userToAdd)).rejects.toThrowError('User already exists'); + }); + }); +}); diff --git a/node_development/node_backend/src/app/core/user/services/user.service.ts b/node_development/node_backend/src/app/core/user/services/user.service.ts new file mode 100644 index 0000000..db0dde0 --- /dev/null +++ b/node_development/node_backend/src/app/core/user/services/user.service.ts @@ -0,0 +1,51 @@ +import { Injectable } from '@nestjs/common'; +import { Repository } from 'typeorm'; +import { User } from '../model/entities/user.entity'; +import { genSalt, hash } from 'bcrypt'; +import { InjectRepository } from '@nestjs/typeorm'; +import { roles } from '../../auth/model/roles.enum'; +import { plainToClass } from 'class-transformer'; + +@Injectable() +export class UserService { + + constructor(@InjectRepository(User) private readonly userRepository: Repository) { } + + async findOne(username: string): Promise { + return this.userRepository.findOne({ + where: { + username, + }, + }); + } + + async registerUser(user: User): Promise { + const actualUser = await this.findOne(user.username!); + + if (actualUser) { + throw new Error('User already exists'); + } + else { + const salt = await genSalt(12); + const hashPass = await hash(user.password, salt); + + return plainToClass( + User, + await this.userRepository.save({ + username: user.username, + name: user.name, + phoneNumber: user.phoneNumber, + password: hashPass, + acceptedCommercial: user.acceptedCommercial, + acceptedTerms: user.acceptedTerms, + role: roles.USER, + }), + ); + } + } + + + async getUsers(): Promise<[User[], number]> { + return await this.userRepository.findAndCount(); + } +} diff --git a/node_development/node_backend/src/app/core/user/user.module.ts b/node_development/node_backend/src/app/core/user/user.module.ts new file mode 100644 index 0000000..cb5ace5 --- /dev/null +++ b/node_development/node_backend/src/app/core/user/user.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { User } from './model/entities/user.entity'; +import { UserService } from './services/user.service'; + +@Module({ + imports: [TypeOrmModule.forFeature([User])], + controllers: [], + providers: [UserService], + exports: [UserService], +}) +export class UserModule {} diff --git a/node_development/node_backend/src/app/event/controllers/event.crud.controller.ts b/node_development/node_backend/src/app/event/controllers/event.crud.controller.ts new file mode 100644 index 0000000..96ab188 --- /dev/null +++ b/node_development/node_backend/src/app/event/controllers/event.crud.controller.ts @@ -0,0 +1,16 @@ +import { Controller } from '@nestjs/common'; +import { Crud } from '@nestjsx/crud'; +import { CrudType } from '@devon4node/common/serializer'; +import { Event } from '../model/entities/event.entity'; +import { EventCrudService } from '../services/event.crud.service'; + +@Crud({ + model: { + type: Event, + }, +}) +@CrudType(Event) +@Controller('event/events') +export class EventCrudController { + constructor(public service: EventCrudService) {} +} diff --git a/node_development/node_backend/src/app/event/event.module.ts b/node_development/node_backend/src/app/event/event.module.ts new file mode 100644 index 0000000..d856a44 --- /dev/null +++ b/node_development/node_backend/src/app/event/event.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { Event } from './model/entities/event.entity'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { EventCrudService } from './services/event.crud.service'; +import { EventCrudController } from './controllers/event.crud.controller'; + +@Module({ + imports: [TypeOrmModule.forFeature([Event])], + providers: [EventCrudService], + controllers: [EventCrudController], +}) +export class EventModule {} diff --git a/node_development/node_backend/src/app/event/model/entities/event.entity.ts b/node_development/node_backend/src/app/event/model/entities/event.entity.ts new file mode 100644 index 0000000..06f1097 --- /dev/null +++ b/node_development/node_backend/src/app/event/model/entities/event.entity.ts @@ -0,0 +1,60 @@ +import { ApiPropertyOptional } from '@nestjs/swagger'; +import { CrudValidationGroups } from '@nestjsx/crud'; +import { IsDefined, IsOptional, MaxLength } from 'class-validator'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from '../../../shared/model/entities/base-entity.entity'; + +@Entity() +export class Event extends BaseEntity { + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + eventName!: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { nullable: true }) + startDate!: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { nullable: true }) + endDate!: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + location!: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + description!: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { nullable: false }) + attentionTime!: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @Column('int', { default: 0, nullable: false }) + visitorCount!: number; + + + +} diff --git a/node_development/node_backend/src/app/event/services/event.crud.service.ts b/node_development/node_backend/src/app/event/services/event.crud.service.ts new file mode 100644 index 0000000..ee7aa50 --- /dev/null +++ b/node_development/node_backend/src/app/event/services/event.crud.service.ts @@ -0,0 +1,42 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { TypeOrmCrudService } from '@nestjsx/crud-typeorm'; +import { Repository } from 'typeorm'; +import { Event } from '../model/entities/event.entity'; + +@Injectable() +export class EventCrudService extends TypeOrmCrudService { + constructor(@InjectRepository(Event) repo: Repository) { + super(repo); + } + + async increaseVisitorCount(eventId: number) { + console.log(eventId); + // await this.repo.findOne(eventId).then(data => { + // if (data != null) { + // var visitor_count = data.visitorCount; + // console.log(visitor_count); + // var incr_visitor_count = visitor_count + 1; + // console.log(incr_visitor_count); + // data.visitorCount = incr_visitor_count; + // console.log(data.visitorCount); + // return incr_visitor_count; + // } + // } + // ); + + } + + async decreaseVisitorCount(eventId: number) { + console.log(eventId); + // await this.repo.findOne(eventId).then(data => { + // if (data != null) { + // const decreasedVisitorCount = data.visitorCount - 1; + // data.visitorCount = decreasedVisitorCount; + // console.log(decreasedVisitorCount); + // return decreasedVisitorCount; + // } + // }); + } + +} diff --git a/node_development/node_backend/src/app/queue-detail/controllers/queue-detail.crud.controller.ts b/node_development/node_backend/src/app/queue-detail/controllers/queue-detail.crud.controller.ts new file mode 100644 index 0000000..254d41b --- /dev/null +++ b/node_development/node_backend/src/app/queue-detail/controllers/queue-detail.crud.controller.ts @@ -0,0 +1,38 @@ +import { Body, Controller, Delete, Get, Param, Post } from '@nestjs/common'; +import { Crud } from '@nestjsx/crud'; +import { CrudType } from '@devon4node/common/serializer'; +import { QueueDetail } from '../model/entities/queue-detail.entity'; +import { QueueDetailCrudService } from '../services/queue-detail.crud.service'; +import { queueDetailDTO } from '../model/entities/queueDetail.dto'; + + + +@Crud({ + model: { + type: QueueDetail, + }, +}) +@CrudType(QueueDetail) +@Controller('queue-detail/queue-details') +export class QueueDetailCrudController { + constructor(public queueDetailservice: QueueDetailCrudService) { } + + + @Post('joinQueue') + async joinQueue(@Body() queueDTO: queueDetailDTO) { + console.log(queueDTO); + return await this.queueDetailservice.joinQueue(queueDTO); + } + + @Delete(':id') + async leaveQueue(@Param('id') queueId: number): Promise { + console.log(queueId + " before deleting it"); + return await this.queueDetailservice.leaveQueue(queueId); + } + + @Get('getAllQueueDetails') + async getQueueDetails(): Promise { + return await this.queueDetailservice.getQueueDetails(); + } +} + diff --git a/node_development/node_backend/src/app/queue-detail/model/JoinCriteria.ts b/node_development/node_backend/src/app/queue-detail/model/JoinCriteria.ts new file mode 100644 index 0000000..f79f4b3 --- /dev/null +++ b/node_development/node_backend/src/app/queue-detail/model/JoinCriteria.ts @@ -0,0 +1,5 @@ +export class JoinCriteria { + eventId!: number; + visitorId!: number; + +} \ No newline at end of file diff --git a/node_development/node_backend/src/app/queue-detail/model/entities/queue-detail.entity.ts b/node_development/node_backend/src/app/queue-detail/model/entities/queue-detail.entity.ts new file mode 100644 index 0000000..44ed283 --- /dev/null +++ b/node_development/node_backend/src/app/queue-detail/model/entities/queue-detail.entity.ts @@ -0,0 +1,40 @@ +import { ApiPropertyOptional } from '@nestjs/swagger'; +import { CrudValidationGroups } from '@nestjsx/crud'; +import { IsDefined, IsOptional, MaxLength } from 'class-validator'; +import { Column, Entity, JoinColumn, ManyToOne } from 'typeorm'; +import { User } from '../../../core/user/model/entities/user.entity'; +import { Event } from '../../../event/model/entities/event.entity'; +import { BaseEntity } from '../../../shared/model/entities/base-entity.entity'; + +@Entity() +export class QueueDetail extends BaseEntity { + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + queueNumber?: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @MaxLength(255) + @Column('varchar', { length: 255, nullable: false }) + minEstimatedTime?: string; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @ManyToOne(() => User, { eager: true }) + @JoinColumn({ name: 'idUser', referencedColumnName: 'id' }) + idUser?: number; + + @ApiPropertyOptional() + @IsDefined({ groups: [CrudValidationGroups.CREATE] }) + @IsOptional({ groups: [CrudValidationGroups.UPDATE] }) + @ManyToOne(() => Event, { eager: true }) + @JoinColumn({ name: 'idEvent', referencedColumnName: 'id' }) + idEvent?: number; + +} diff --git a/node_development/node_backend/src/app/queue-detail/model/entities/queueDetail.dto.ts b/node_development/node_backend/src/app/queue-detail/model/entities/queueDetail.dto.ts new file mode 100644 index 0000000..7fb7de5 --- /dev/null +++ b/node_development/node_backend/src/app/queue-detail/model/entities/queueDetail.dto.ts @@ -0,0 +1,4 @@ +export class queueDetailDTO { + eventId!: number; + visitorId!: number; +} \ No newline at end of file diff --git a/node_development/node_backend/src/app/queue-detail/queue-detail.module.ts b/node_development/node_backend/src/app/queue-detail/queue-detail.module.ts new file mode 100644 index 0000000..e371183 --- /dev/null +++ b/node_development/node_backend/src/app/queue-detail/queue-detail.module.ts @@ -0,0 +1,15 @@ +import { Module } from '@nestjs/common'; +import { QueueDetail } from './model/entities/queue-detail.entity'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { QueueDetailCrudService } from './services/queue-detail.crud.service'; +import { QueueDetailCrudController } from './controllers/queue-detail.crud.controller'; +import { Event } from '../event/model/entities/event.entity'; +import { User } from '../core/user/model/entities/user.entity'; +import { EventCrudService } from '../event/services/event.crud.service'; + +@Module({ + imports: [TypeOrmModule.forFeature([QueueDetail, Event, User])], + providers: [QueueDetailCrudService, EventCrudService], + controllers: [QueueDetailCrudController], +}) +export class QueueDetailModule { } diff --git a/node_development/node_backend/src/app/queue-detail/services/queue-detail.crud.service.ts b/node_development/node_backend/src/app/queue-detail/services/queue-detail.crud.service.ts new file mode 100644 index 0000000..db4360b --- /dev/null +++ b/node_development/node_backend/src/app/queue-detail/services/queue-detail.crud.service.ts @@ -0,0 +1,127 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { User } from '../../core/user/model/entities/user.entity'; +import { Event } from '../../event/model/entities/event.entity'; +import { EventCrudService } from '../../event/services/event.crud.service'; +import { QueueDetail } from '../model/entities/queue-detail.entity'; +import { queueDetailDTO } from '../model/entities/queueDetail.dto'; + + +@Injectable() +export class QueueDetailCrudService { + + + constructor(@InjectRepository(QueueDetail) private readonly queueRepo: Repository, @InjectRepository(Event) private readonly eventRepo: Repository + , @InjectRepository(User) private readonly userRepo: Repository, public eventService: EventCrudService) { } + + //make the visitor join the Queue + //input: queueDetailDTO(visitorId and eventId), Output: saved QueueDetail + async joinQueue(queueDTO: queueDetailDTO) { + const userId = queueDTO.visitorId; + const eventId = queueDTO.eventId; + var queueDetail: QueueDetail = new QueueDetail(); + var event: Event = new Event(); + await this.queueRepo.find({ where: { idEvent: eventId, idUser: userId } }).then(data => { + if (data.length === 0) { + + this.queueRepo.find({ where: { idEvent: eventId } }).then(data => { + if (data.length === 0) { + queueDetail.queueNumber = 'Q001'; + } else { + queueDetail.queueNumber = this.generateQueueNumber(data); + } + }); + } else { + return data[0]; + } + }); + await this.eventRepo.findOne(eventId).then(data => { + + if (data != null) { + queueDetail.idEvent = data.id; + const visitor_Count = data.visitorCount; + queueDetail.minEstimatedTime = this.calculateMinimumEstimatedTime(visitor_Count); + } + }); + + await this.userRepo.findOne(userId).then(data => { + if (data != null) { + queueDetail.idUser = data.id; + } + }); + + const savedQueueDetail = await this.queueRepo.save(queueDetail); + await this.eventRepo.findOne(eventId).then(data => { + if (data != null) { + const visitor_Count = data.visitorCount; + const visitor_count = visitor_Count + 1; + data.visitorCount = visitor_count; + event.visitorCount = data.visitorCount; + event = data; + this.eventRepo.save(event); + this.eventRepo.save(data); + } + }); + + // this.eventService.increaseVisitorCount(eventId); + return savedQueueDetail; + + } + + //generates Queue Number for the Queue Detail + //input: QueueDetail[], output: new Queue Number for the QueueDetail + generateQueueNumber(queueData: QueueDetail[]) { + const lastQueueDetail = queueData[queueData.length - 1]; + const lastQueueNumber = Number(lastQueueDetail.queueNumber?.substring(2)); + const updatedQueueNumber = lastQueueNumber + 1; + const stringPart = updatedQueueNumber.toString(); + const newQueueNumber = "Q00" + stringPart; + return newQueueNumber; + } + + + //calculates minimum estimated time for the visitor's turn to come in the queue + //input: visitorCount inside the event, output: estimated time for the visitors turn to come + calculateMinimumEstimatedTime(visitorCount: number) { + const minimumAttentionTime = "5 minutes"; + var integerPart = Number(minimumAttentionTime.substring(0, 1)); + var calculatedEstimatedTime = integerPart * visitorCount; + console.log("after calculating minimum estimated time " + calculatedEstimatedTime); + var calculatedOutput = calculatedEstimatedTime.toString(); + return calculatedOutput; + } + + //make the person leave the queue and deletes the queue detail from the repository + //input: Queue Id, + async leaveQueue(queueId: number): Promise { + await this.queueRepo.findOne(queueId).then(data => { + if (data != null) { + console.log(data); + const event: Event | any = data.idEvent; + this.eventRepo.findOne(event.id).then(data => { + if (data != null) { + console.log(data); + const existingVisitorCount = data.visitorCount; + console.log(existingVisitorCount); + const decreasedVisitorCount = data.visitorCount - 1; + console.log(decreasedVisitorCount); + data.visitorCount = decreasedVisitorCount; + this.eventRepo.save(data); + + } + }); + this.queueRepo.delete(queueId); + } + }); + + } + + //get all the Queue Detail from repository + //input:none, output: all Queue Details from the repository. + async getQueueDetails(): Promise { + return await this.queueRepo.find(); + } + + +} diff --git a/node_development/node_backend/src/app/shared/exceptions/business-logic.exception.ts b/node_development/node_backend/src/app/shared/exceptions/business-logic.exception.ts new file mode 100644 index 0000000..f12008b --- /dev/null +++ b/node_development/node_backend/src/app/shared/exceptions/business-logic.exception.ts @@ -0,0 +1,27 @@ +export class BusinessLogicException extends Error { + private readonly _errorId?: string; + private readonly _name: string = 'BusinessLogicException'; + private readonly _message: string; + + constructor(message: string, errorId?: string) { + super(); + this._message = message; + this._errorId = errorId; + } + + get errorId(): string | undefined { + return this._errorId; + } + + get name(): string { + return this._name; + } + + get message(): string { + return this._message; + } + + plainObject(): Pick { + return { message: this.message, name: this.name, errorId: this.errorId }; + } +} diff --git a/node_development/node_backend/src/app/shared/filters/business-logic.filter.spec.ts b/node_development/node_backend/src/app/shared/filters/business-logic.filter.spec.ts new file mode 100644 index 0000000..817f74c --- /dev/null +++ b/node_development/node_backend/src/app/shared/filters/business-logic.filter.spec.ts @@ -0,0 +1,63 @@ +import { BusinessLogicFilter } from './business-logic.filter'; +import { BusinessLogicException } from '../exceptions/business-logic.exception'; + +describe('BusinessLogicFilter', () => { + let filter: BusinessLogicFilter; + let error: jest.Mock; + const request = { + url: '/an/url', + }; + const exception = new BusinessLogicException('Logic error', 'id001'); + const jsonFn = jest.fn(); + const status = jest.fn(() => { + return { + json: jsonFn, + }; + }); + const argumentHost: any = { + switchToHttp() { + return { + getResponse(): any { + return { + status, + }; + }, + getRequest(): any { + return request; + }, + }; + }, + }; + + beforeAll(() => { + error = jest.fn(); + const logger = { + error, + }; + filter = new BusinessLogicFilter(logger as any); + }); + + it('should be defined', () => { + expect(filter).toBeDefined(); + }); + + describe('catch', () => { + it('should return an 400 Bad Request error', () => { + filter.catch(exception, argumentHost as any); + expect(error).toBeCalledTimes(1); + expect(status).toBeCalledWith(400); + expect(jsonFn).toBeCalledWith({ + ...exception.plainObject(), + statusCode: 400, + timestamp: jsonFn.mock.calls[0][0].timestamp, + path: request.url, + }); + }); + + it('should also work without logger', () => { + const newFilter = new BusinessLogicFilter(); + + newFilter.catch(new BusinessLogicException('Logic error', 'id001'), argumentHost as any); + }); + }); +}); diff --git a/node_development/node_backend/src/app/shared/filters/business-logic.filter.ts b/node_development/node_backend/src/app/shared/filters/business-logic.filter.ts new file mode 100644 index 0000000..1327601 --- /dev/null +++ b/node_development/node_backend/src/app/shared/filters/business-logic.filter.ts @@ -0,0 +1,28 @@ +import { ArgumentsHost, Catch, ExceptionFilter, Optional } from '@nestjs/common'; +import { BusinessLogicException } from '../exceptions/business-logic.exception'; +import { WinstonLogger } from '../logger/winston.logger'; +import { Response } from 'express'; + +@Catch(BusinessLogicException) +export class BusinessLogicFilter implements ExceptionFilter { + constructor(@Optional() public readonly logger?: WinstonLogger) {} + + catch(exception: T, host: ArgumentsHost): void { + const ctx = host.switchToHttp(); + const response = ctx.getResponse(); + const request = ctx.getRequest(); + + const responseObj = { + ...exception.plainObject(), + statusCode: 400, + timestamp: new Date().toISOString(), + path: request.url, + }; + + if (this.logger) { + this.logger.error(exception.message, exception.stack!, 'LogicFilter'); + } + + response.status(400).json(responseObj); + } +} diff --git a/node_development/node_backend/src/app/shared/logger/winston.logger.ts b/node_development/node_backend/src/app/shared/logger/winston.logger.ts new file mode 100644 index 0000000..9ca7c82 --- /dev/null +++ b/node_development/node_backend/src/app/shared/logger/winston.logger.ts @@ -0,0 +1,114 @@ +/* istanbul ignore file */ +import { ConfigService } from '@devon4node/config'; +import { Logger, LogLevel, Optional } from '@nestjs/common'; +import * as winston from 'winston'; +import { Config } from '../model/config/config.model'; + +export class WinstonLogger extends Logger { + private static DEFAULT_LOG_LEVEL = 'info'; + private console = true; + private logger?: winston.Logger; + + constructor(@Optional() private readonly configService?: ConfigService) { + super(); + const logLevel = this.configService?.values.loggerConfig?.loggerLevel! || WinstonLogger.DEFAULT_LOG_LEVEL; + const generalDir = this.configService?.values.loggerConfig?.generalLogFile; + const errorDir = this.configService?.values.loggerConfig?.errorLogFile; + const transports: any[] = []; + + if (this.configService?.values.loggerConfig?.console !== undefined) { + this.console = this.configService?.values.loggerConfig?.console; + } + + if (generalDir) { + transports.push( + new winston.transports.File({ + filename: generalDir, + }), + ); + } + + if (errorDir) { + transports.push( + new winston.transports.File({ + filename: errorDir, + level: 'error', + }), + ); + } + + this.overrideLogger(logLevel); + + if (transports.length) { + this.logger = winston.createLogger({ + format: winston.format.combine(winston.format.timestamp(), winston.format.json()), + level: logLevel, + transports, + }); + } + } + + overrideLogger(level: 'error' | 'warn' | 'info' | 'http' | 'verbose' | 'debug' | 'silly'): void { + const loggerLevels: LogLevel[] = ['debug', 'verbose', 'log', 'warn', 'error']; + let nestLoggerLevel: string = level; + + if (nestLoggerLevel === 'info' || nestLoggerLevel === 'http') { + nestLoggerLevel = 'log'; + } + + if (nestLoggerLevel === 'silly') { + nestLoggerLevel = 'debug'; + } + + const pos = loggerLevels.findIndex(e => e === nestLoggerLevel); + + if (pos !== -1) { + Logger.overrideLogger(loggerLevels.slice(pos)); + } + } + + log(message: string, context?: string): void { + if (this.console) { + super.log(message, context); + } + if (this.logger) { + this.logger.info({ message, context }); + } + } + + error(message: string, trace: string, context?: string): void { + if (this.console) { + super.error(message, trace, context); + } + if (this.logger) { + this.logger.error({ message, trace, context }); + } + } + + warn(message: string, context?: string): void { + if (this.console) { + super.warn(message, context); + } + if (this.logger) { + this.logger.warn({ message, context }); + } + } + + debug(message: any, context?: string): void { + if (this.console) { + super.debug(message, context); + } + if (this.logger) { + this.logger.debug({ message, context }); + } + } + + verbose(message: any, context?: string): void { + if (this.console) { + super.verbose(message, context); + } + if (this.logger) { + this.logger.verbose({ message, context }); + } + } +} diff --git a/node_development/node_backend/src/app/shared/model/config/config.model.ts b/node_development/node_backend/src/app/shared/model/config/config.model.ts new file mode 100644 index 0000000..7277eeb --- /dev/null +++ b/node_development/node_backend/src/app/shared/model/config/config.model.ts @@ -0,0 +1,49 @@ +import { BaseConfig } from '@devon4node/config'; +import { Type } from 'class-transformer'; +import { IsBoolean, IsIn, IsOptional, IsString, ValidateNested, IsDefined, IsNotEmptyObject } from 'class-validator'; +import { ConnectionOptions } from 'typeorm'; +import { JwtModuleOptions } from '@nestjs/jwt'; + +export class LoggerConfiguration { + @IsOptional() + @IsString() + @IsIn(['error', 'warn', 'info', 'http', 'verbose', 'debug', 'silly']) + loggerLevel?: 'error' | 'warn' | 'info' | 'http' | 'verbose' | 'debug' | 'silly'; + @IsOptional() + @IsString() + generalLogFile?: string; + @IsOptional() + @IsString() + errorLogFile?: string; + @IsOptional() + @IsBoolean() + console?: boolean; +} +export class SwaggerConfig { + @IsDefined() + @IsString() + swaggerTitle!: string; + @IsDefined() + @IsString() + swaggerDescription!: string; + @IsDefined() + @IsString() + swaggerVersion!: string; +} + +export class Config extends BaseConfig { + @IsOptional() + @ValidateNested() + @Type(() => LoggerConfiguration) + loggerConfig?: LoggerConfiguration; + @IsDefined() + @IsNotEmptyObject() + database!: ConnectionOptions; + @IsDefined() + @ValidateNested() + @Type(() => SwaggerConfig) + swaggerConfig?: SwaggerConfig; + @IsDefined() + @IsNotEmptyObject() + jwtConfig!: JwtModuleOptions; +} diff --git a/node_development/node_backend/src/app/shared/model/entities/base-entity.entity.ts b/node_development/node_backend/src/app/shared/model/entities/base-entity.entity.ts new file mode 100644 index 0000000..f1a92fe --- /dev/null +++ b/node_development/node_backend/src/app/shared/model/entities/base-entity.entity.ts @@ -0,0 +1,23 @@ +import { PrimaryGeneratedColumn, VersionColumn, CreateDateColumn, UpdateDateColumn } from 'typeorm'; +import { Exclude } from 'class-transformer'; +import { ApiHideProperty } from '@nestjs/swagger'; + +export abstract class BaseEntity { + @PrimaryGeneratedColumn('increment') + id!: number; + + @VersionColumn({ default: 1 }) + @Exclude({ toPlainOnly: true }) + @ApiHideProperty() + version!: number; + + @CreateDateColumn() + @Exclude({ toPlainOnly: true }) + @ApiHideProperty() + createdAt!: string; + + @UpdateDateColumn() + @Exclude({ toPlainOnly: true }) + @ApiHideProperty() + updatedAt!: string; +} diff --git a/node_development/node_backend/src/config/default.ts b/node_development/node_backend/src/config/default.ts new file mode 100644 index 0000000..4aa329a --- /dev/null +++ b/node_development/node_backend/src/config/default.ts @@ -0,0 +1,24 @@ +import { Config } from '../app/shared/model/config/config.model'; + +const def: Config = { + isDev: true, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: true, + errorLogFile: './logs/error.log', + generalLogFile: './logs/general.log', + loggerLevel: 'info', + }, + database: require('../../ormconfig.json'), + swaggerConfig: { + swaggerTitle: 'NestJS Application', + swaggerDescription: 'API Documentation', + swaggerVersion: '0.0.1', + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; + +export default def; diff --git a/node_development/node_backend/src/config/develop.ts b/node_development/node_backend/src/config/develop.ts new file mode 100644 index 0000000..958fcec --- /dev/null +++ b/node_development/node_backend/src/config/develop.ts @@ -0,0 +1,38 @@ +import { Config } from '../app/shared/model/config/config.model'; + +const def: Config = { + isDev: false, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: true, + errorLogFile: './logs/error.log', + generalLogFile: './logs/general.log', + loggerLevel: 'info', + }, + database: { + type: 'sqlite', + database: ':memory:', + synchronize: false, + migrationsRun: true, + logging: true, + entities: ['dist/**/*.entity.js'], + migrations: ['dist/migration/**/*.js'], + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + subscribersDir: 'src/subscriber', + }, + }, + swaggerConfig: { + swaggerTitle: 'NestJS Application', + swaggerDescription: 'API Documentation', + swaggerVersion: '0.0.1', + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; + +export default def; diff --git a/node_development/node_backend/src/config/production.ts b/node_development/node_backend/src/config/production.ts new file mode 100644 index 0000000..fd0e7c4 --- /dev/null +++ b/node_development/node_backend/src/config/production.ts @@ -0,0 +1,33 @@ +import { Config } from '../app/shared/model/config/config.model'; + +const def: Config = { + isDev: false, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: false, + errorLogFile: './logs/error.log', + generalLogFile: './logs/general.log', + loggerLevel: 'warn', + }, + database: { + type: 'sqlite', + database: ':memory:', + synchronize: false, + migrationsRun: true, + logging: true, + entities: ['dist/**/*.entity.js'], + migrations: ['dist/migration/**/*.js'], + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + subscribersDir: 'src/subscriber', + }, + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; + +export default def; diff --git a/node_development/node_backend/src/config/test.ts b/node_development/node_backend/src/config/test.ts new file mode 100644 index 0000000..615c189 --- /dev/null +++ b/node_development/node_backend/src/config/test.ts @@ -0,0 +1,36 @@ +import { Config } from '../app/shared/model/config/config.model'; + +const def: Config = { + isDev: true, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: false, + loggerLevel: 'info', + }, + database: { + type: 'sqlite', + database: ':memory:', + synchronize: false, + migrationsRun: true, + logging: true, + entities: ['dist/**/*.entity.js'], + migrations: ['dist/migration/**/*.js'], + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + subscribersDir: 'src/subscriber', + }, + }, + swaggerConfig: { + swaggerTitle: 'NestJS Application', + swaggerDescription: 'API Documentation', + swaggerVersion: '0.0.1', + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; + +export default def; diff --git a/node_development/node_backend/src/config/uat.ts b/node_development/node_backend/src/config/uat.ts new file mode 100644 index 0000000..fd0e7c4 --- /dev/null +++ b/node_development/node_backend/src/config/uat.ts @@ -0,0 +1,33 @@ +import { Config } from '../app/shared/model/config/config.model'; + +const def: Config = { + isDev: false, + host: 'localhost', + port: 3000, + clientUrl: 'localhost:4200', + globalPrefix: 'v1', + loggerConfig: { + console: false, + errorLogFile: './logs/error.log', + generalLogFile: './logs/general.log', + loggerLevel: 'warn', + }, + database: { + type: 'sqlite', + database: ':memory:', + synchronize: false, + migrationsRun: true, + logging: true, + entities: ['dist/**/*.entity.js'], + migrations: ['dist/migration/**/*.js'], + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + subscribersDir: 'src/subscriber', + }, + }, + jwtConfig: { secret: 'SECRET', signOptions: { expiresIn: '24h' } }, +}; + +export default def; diff --git a/node_development/node_backend/src/main.ts b/node_development/node_backend/src/main.ts new file mode 100644 index 0000000..1d777a6 --- /dev/null +++ b/node_development/node_backend/src/main.ts @@ -0,0 +1,38 @@ +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app/app.module'; +import { WinstonLogger } from './app/shared/logger/winston.logger'; +import { ValidationPipe } from '@nestjs/common'; +import { ConfigService } from '@devon4node/config'; +import * as helmet from 'helmet'; +import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; + +async function bootstrap(): Promise { + const app = await NestFactory.create(AppModule, { logger: new WinstonLogger() }); + const configModule = app.get(ConfigService); + app.useGlobalPipes( + new ValidationPipe({ + transform: true, + }), + ); + app.setGlobalPrefix(configModule.values.globalPrefix); + app.use(helmet()); + app.enableCors({ + origin: '*', + credentials: true, + exposedHeaders: 'Authorization', + allowedHeaders: 'authorization, content-type', + }); + if (configModule.values.isDev) { + const options = new DocumentBuilder() + .setTitle(configModule.values.swaggerConfig.swaggerTitle) + .setDescription(configModule.values.swaggerConfig.swaggerDescription) + .setVersion(configModule.values.swaggerConfig.swaggerVersion) + .addBearerAuth() + .build(); + + const swaggerDoc = SwaggerModule.createDocument(app, options); + SwaggerModule.setup((configModule.values.globalPrefix || '') + '/api', app, swaggerDoc); + } + await app.listen(configModule.values.port); +} +bootstrap(); diff --git a/node_development/node_backend/src/migration/1609823263069-CreateTables.ts b/node_development/node_backend/src/migration/1609823263069-CreateTables.ts new file mode 100644 index 0000000..5cae2bf --- /dev/null +++ b/node_development/node_backend/src/migration/1609823263069-CreateTables.ts @@ -0,0 +1,40 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CreateTables1609823263069 implements MigrationInterface { + name = 'CreateTables1609823263069' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "user" + ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "version" integer NOT NULL DEFAULT (1), + "createdAt" datetime NOT NULL DEFAULT (datetime('now')), + "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "username" varchar(255) NOT NULL, + "name" varchar(255) NOT NULL, "phoneNumber" varchar(255) NOT NULL, + "password" varchar(255) NOT NULL, "acceptedCommercial" integer DEFAULT (1), + "acceptedTerms" integer DEFAULT (1), "role" integer NOT NULL DEFAULT (0))`); + + await queryRunner.query(`CREATE TABLE "event" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "version" integer NOT NULL DEFAULT (1), "createdAt" datetime NOT NULL DEFAULT (datetime('now')), + "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "eventName" varchar(255) NOT NULL, + "startDate" varchar, "endDate" varchar, "location" varchar(255) NOT NULL, + "description" varchar(255) NOT NULL, "attentionTime" varchar NOT NULL, + "visitorCount" integer NOT NULL)`); + + await queryRunner.query(`CREATE TABLE "queue_detail"( + "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "version" integer NOT NULL DEFAULT (1), + "createdAt" datetime NOT NULL DEFAULT (datetime('now')), + "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), + "queueNumber" VARCHAR(255), + "minEstimatedTime" VARCHAR(255), + idUser BIGINT, idEvent BIGINT, + FOREIGN KEY(idUser) REFERENCES user(id), + FOREIGN KEY(idEvent) REFERENCES event(id))`); + } + + public async down(queryRunner: QueryRunner): Promise { + + await queryRunner.query(`DROP TABLE "queue_detail"`); + await queryRunner.query(`DROP TABLE "event"`); + await queryRunner.query(`DROP TABLE "user"`); + } + +} diff --git a/node_development/node_backend/src/migration/1609823284132-InsertData.ts b/node_development/node_backend/src/migration/1609823284132-InsertData.ts new file mode 100644 index 0000000..5bdcf5f --- /dev/null +++ b/node_development/node_backend/src/migration/1609823284132-InsertData.ts @@ -0,0 +1,91 @@ +import { hash, genSalt } from 'bcrypt'; +import { MigrationInterface, QueryRunner } from "typeorm"; +import { roles } from '../app/core/auth/model/roles.enum'; + +export class InsertData1609823284132 implements MigrationInterface { + name = 'InsertData1609823284132' + + public async up(queryRunner: QueryRunner): Promise { + + await queryRunner.query(`INSERT INTO USER(id, username,name,phoneNumber,password,acceptedCommercial,acceptedTerms,role) VALUES(?, ?, ?, ?,?,?,?,?);`, [ + 1, + 'user', + 'user', + '1212121212', + await hash('password', await genSalt(12)), + 1, + 1, + roles.USER, + ]); + await queryRunner.query(`INSERT INTO USER(id, username,name,phoneNumber,password,acceptedCommercial,acceptedTerms,role) VALUES(?, ?, ?, ?,?,?,?,?);`, [ + 3, + 'azhar@gmail.com', + 'Azhar', + '8734231265', + await hash('Azhar@123', await genSalt(12)), + 1, + 1, + roles.USER, + ]); + await queryRunner.query(`INSERT INTO USER(id, username,name,phoneNumber,password,acceptedCommercial,acceptedTerms,role) VALUES(?, ?, ?, ?,?,?,?,?);`, [ + 4, + 'ayushi@gmail.com', + 'Ayushi', + '7837263134', + await hash('Ayushi@123', await genSalt(12)), + 1, + 1, + roles.USER, + ]); + await queryRunner.query(`INSERT INTO USER(id, username,name,phoneNumber,password,acceptedCommercial,acceptedTerms,role) VALUES(?, ?, ?, ?,?,?,?,?);`, [ + 2, + 'admin', + 'admin', + '9898989898', + await hash('admin', await genSalt(12)), + 1, + 1, + roles.ADMIN, + ]); + + + await queryRunner.query( + `INSERT INTO EVENT(id,eventName,startDate,endDate, location, description,attentionTime, + visitorCount) VALUES (1,'Rebecca','27-12-2020',null,'kolkata','Cultural Event','5 minutes',0);` + + ); + await queryRunner.query( + `INSERT INTO EVENT(id,eventName,startDate,endDate, location, description,attentionTime, + visitorCount) + VALUES (2,'Reflexobeta','28-12-2020',null,'Bangalore','Dancing Event','5 minutes',0);` + + ); + await queryRunner.query( + `INSERT INTO EVENT(id,eventName,startDate,endDate, location, description,attentionTime, + visitorCount) VALUES (3,'Orkotan','29-12-2020',null,'Mumbai','Musical Event','5 minutes',0);` + + ); + + // await queryRunner.query( + // `INSERT INTO QUEUE_DETAIL(id,queueNumber,minEstimatedTime,idUser,idEvent) + // VALUES (1,'Q001','0 minutes',3,1);` + + // ); + + // await queryRunner.query(`CREATE TABLE "user" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "version" integer NOT NULL DEFAULT (1), "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "username" varchar(255) NOT NULL, "name" varchar(255) NOT NULL, "phoneNumber" varchar(255) NOT NULL, "password" varchar(255) NOT NULL, "acceptedCommercial" integer DEFAULT (1), "acceptedTerms" integer DEFAULT (1), "role" integer NOT NULL DEFAULT (0))`); + // await queryRunner.query(`CREATE TABLE "event" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "version" integer NOT NULL DEFAULT (1), "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "eventName" varchar(255) NOT NULL, "startDate" varchar, "endDate" varchar, "location" varchar(255) NOT NULL, "description" varchar(255) NOT NULL, "attentionTime" varchar NOT NULL, "visitorCount" integer NOT NULL)`); + // await queryRunner.query(`CREATE TABLE "queue_detail" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "version" integer NOT NULL DEFAULT (1), "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "queueNumber" varchar(255) NOT NULL, "minEstimatedTime" varchar(255) NOT NULL, "creationTime" varchar(255), "user_id" integer, "eventId" integer)`); + // await queryRunner.query(`CREATE TABLE "temporary_queue_detail" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "version" integer NOT NULL DEFAULT (1), "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "updatedAt" datetime NOT NULL DEFAULT (datetime('now')), "queueNumber" varchar(255) NOT NULL, "minEstimatedTime" varchar(255) NOT NULL, "creationTime" varchar(255), "user_id" integer, "eventId" integer, CONSTRAINT "FK_58015da3a20b259bcd8f03441b0" FOREIGN KEY ("user_id") REFERENCES "user" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT "FK_377d87f85bd7be5d6859cc8b24a" FOREIGN KEY ("eventId") REFERENCES "event" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION)`); + // await queryRunner.query(`INSERT INTO "temporary_queue_detail"("id", "version", "createdAt", "updatedAt", "queueNumber", "minEstimatedTime", "creationTime", "user_id", "eventId") SELECT "id", "version", "createdAt", "updatedAt", "queueNumber", "minEstimatedTime", "creationTime", "user_id", "eventId" FROM "queue_detail"`); + // await queryRunner.query(`DROP TABLE "queue_detail"`); + // await queryRunner.query(`ALTER TABLE "temporary_queue_detail" RENAME TO "queue_detail"`); + } + + public async down(queryRunner: QueryRunner): Promise { + console.log(queryRunner); + await queryRunner.query(`DROP TABLE "queue_detail"`); + await queryRunner.query(`DROP TABLE "event"`); + await queryRunner.query(`DROP TABLE "user"`); + } + +} diff --git a/node_development/node_backend/test/app.e2e-spec.ts b/node_development/node_backend/test/app.e2e-spec.ts new file mode 100644 index 0000000..50cda62 --- /dev/null +++ b/node_development/node_backend/test/app.e2e-spec.ts @@ -0,0 +1,24 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from './../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/ (GET)', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello World!'); + }); +}); diff --git a/node_development/node_backend/test/auth/auth.service.mock.ts b/node_development/node_backend/test/auth/auth.service.mock.ts new file mode 100644 index 0000000..2280648 --- /dev/null +++ b/node_development/node_backend/test/auth/auth.service.mock.ts @@ -0,0 +1,34 @@ +import { User } from '../../src/app/core/user/model/entities/user.entity'; +import { UnauthorizedException } from '@nestjs/common'; +export class AuthServiceMock { + private user: Partial = { + id: 1, + username: 'user1', + password: 'user1', + role: 0, + }; + + async validateUser(username: string, pass: string): Promise { + if (username === this.user.username && pass === this.user.password) { + return this.user as User; + } + + return undefined; + } + + async login(user: User): Promise { + if (!(await this.validateUser(user.username, user.password))) { + throw new UnauthorizedException('Wrong username or password'); + } + + return 'THISISNOTAJWTTOKEN'; + } + + register(user: User): Partial { + if (user.username === this.user.username) { + throw new Error('User already exists'); + } + + return { ...user, password: undefined }; + } +} diff --git a/node_development/node_backend/test/jest-e2e.json b/node_development/node_backend/test/jest-e2e.json new file mode 100644 index 0000000..e9d912f --- /dev/null +++ b/node_development/node_backend/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/node_development/node_backend/test/user/user.repository.mock.ts b/node_development/node_backend/test/user/user.repository.mock.ts new file mode 100644 index 0000000..962f1b2 --- /dev/null +++ b/node_development/node_backend/test/user/user.repository.mock.ts @@ -0,0 +1,38 @@ +import * as _ from 'lodash'; +import { FindConditions, FindOneOptions } from 'typeorm'; +import { User } from '../../src/app/core/user/model/entities/user.entity'; + +export class UserRepositoryMock { + users: Array>; + constructor() { + this.users = [ + { + id: 1, + username: 'user1', + // password: 'user1', + password: '$2b$12$KgUSTFUTjRqQD7U7tuV9quheR4L.LOAT.GhmTjBIXsgLMhBXjfhYq', + role: 0, + }, + { + id: 2, + username: 'user2', + // password: 'user2', + password: '$2b$12$jDy/bJV0p6mYRlEjZL5t0OX9jinlfEiQDfuApJJGSVW6Ca/hiVbBW', + role: 1, + }, + ]; + } + + // async to mantain the same return type as UserService + async findOne(options: FindOneOptions | undefined): Promise | undefined> { + return _.find(this.users, { + username: (options!.where! as FindConditions).username as string, + }); + } + + async save(user: User): Promise { + this.users.push(user); + + return user; + } +} diff --git a/node_development/node_backend/tsconfig.build.json b/node_development/node_backend/tsconfig.build.json new file mode 100644 index 0000000..64f86c6 --- /dev/null +++ b/node_development/node_backend/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/node_development/node_backend/tsconfig.json b/node_development/node_backend/tsconfig.json new file mode 100644 index 0000000..e0d0026 --- /dev/null +++ b/node_development/node_backend/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2017", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "strict": true, + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + } +} \ No newline at end of file diff --git a/node_development/node_backend/yarn.lock b/node_development/node_backend/yarn.lock new file mode 100644 index 0000000..efdfe2c --- /dev/null +++ b/node_development/node_backend/yarn.lock @@ -0,0 +1,7121 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@angular-devkit/core@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-11.0.3.tgz#2acc7c90f1597b87455e0a5f93ebb1cd01b873aa" + integrity sha512-gJRiBj0gWDR2VtIvLvwwc/GM2MZvg1xw69ZbBJ1VuUgDqPBHdC8q3UMW3B82wdhxK+RBYa7ZOJxtIVggaHkm9g== + dependencies: + ajv "6.12.6" + fast-json-stable-stringify "2.1.0" + magic-string "0.25.7" + rxjs "6.6.3" + source-map "0.7.3" + +"@angular-devkit/core@11.0.5": + version "11.0.5" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-11.0.5.tgz#8239486d2de6c08fc55d2a64f12a7f5d518c8beb" + integrity sha512-hwV8fjF8JNPJkiVWw8MNzeIfDo01aD/OAOlC4L5rQnVHn+i2EiU3brSDmFqyeHPPV3h/QjuBkS3tkN7gSnVWaQ== + dependencies: + ajv "6.12.6" + fast-json-stable-stringify "2.1.0" + magic-string "0.25.7" + rxjs "6.6.3" + source-map "0.7.3" + +"@angular-devkit/schematics-cli@0.1100.3": + version "0.1100.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics-cli/-/schematics-cli-0.1100.3.tgz#89ed076946d643c285228ea30b00c0def1fdb11d" + integrity sha512-dECFHCDTgWfSHosfKTeQoyTgUUqgJaftxg4DxA23sMsQtDb1U8ZsIIPpH+L4QhCDT2zlhv51ynd5RUgu28h2DQ== + dependencies: + "@angular-devkit/core" "11.0.3" + "@angular-devkit/schematics" "11.0.3" + "@schematics/schematics" "0.1100.3" + ansi-colors "4.1.1" + inquirer "7.3.3" + minimist "1.2.5" + symbol-observable "2.0.3" + +"@angular-devkit/schematics@11.0.3": + version "11.0.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.0.3.tgz#fc7fb9432d9e2678162794afdaf4fd338e731509" + integrity sha512-VZnqgnnfyzyMluIDvGp+ZlDU2P9BnjrhacBOdqBS/jNQ7oxyE0AWrUApGXcejOJ13Z7pEf31E64P3bImcjwP+A== + dependencies: + "@angular-devkit/core" "11.0.3" + ora "5.1.0" + rxjs "6.6.3" + +"@angular-devkit/schematics@11.0.5": + version "11.0.5" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-11.0.5.tgz#e5d89451daa644eccce93970709f7cdf44c11982" + integrity sha512-0NKGC8Nf/4vvDpWKB7bwxIazvNnNHnZBX6XlyBXNl+fW8tpTef3PNMJMSErTz9LFnuv61vsKbc36u/Ek2YChWg== + dependencies: + "@angular-devkit/core" "11.0.5" + ora "5.1.0" + rxjs "6.6.3" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11", "@babel/code-frame@^7.8.3": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" + integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.10" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.10" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.10", "@babel/generator@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" + integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== + dependencies: + "@babel/types" "^7.12.11" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-function-name@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" + integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.10" + "@babel/template" "^7.12.7" + "@babel/types" "^7.12.11" + +"@babel/helper-get-function-arity@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" + integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-member-expression-to-functions@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== + dependencies: + "@babel/types" "^7.12.7" + +"@babel/helper-module-imports@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== + dependencies: + "@babel/types" "^7.12.5" + +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" + integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== + dependencies: + "@babel/types" "^7.12.10" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-replace-supers@^7.12.1": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" + integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.7" + "@babel/helper-optimise-call-expression" "^7.12.10" + "@babel/traverse" "^7.12.10" + "@babel/types" "^7.12.11" + +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" + integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== + dependencies: + "@babel/types" "^7.12.11" + +"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" + integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" + integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== + dependencies: + "@babel/code-frame" "^7.12.11" + "@babel/generator" "^7.12.11" + "@babel/helper-function-name" "^7.12.11" + "@babel/helper-split-export-declaration" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/types" "^7.12.12" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" + integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@dabh/diagnostics@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" + integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@devon4node/common@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@devon4node/common/-/common-2.0.0.tgz#0782cd59cd9e8e04a5333d1203d2e8447661372f" + integrity sha512-msP7v7PeM7WxeXx6VK9Xi02mvL4Bvi9a3U3Kn/6qJBSEXiwCpvB91PAhFeHo5ecu3A12y6csiNXjz5cGWFyUlw== + dependencies: + lodash "^4.17.15" + +"@devon4node/config@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@devon4node/config/-/config-2.0.0.tgz#39c42b4f9ad5488c27a9aa14fb050947ab1e27a7" + integrity sha512-giw9DW4fe7uQkUzCM7x22ecb4B99wOY2vVT2eTakv6EOM27e6+Gc+DrE9YswcrJYKdjT2NpzpEEfsQMk/SSC/w== + +"@eslint/eslintrc@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" + integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@nestjs/cli@^7.5.1": + version "7.5.4" + resolved "https://registry.yarnpkg.com/@nestjs/cli/-/cli-7.5.4.tgz#d4cdce388d7f6a32dabdf5bab909af23653f7740" + integrity sha512-qKdniSA7NXO/5HqSxGaalMS7roIJXeT4yXTadBQ47Qv68DHh/0jfCcTzH6hqCuyRV7DV2k0bxob+rq4peMaZBw== + dependencies: + "@angular-devkit/core" "11.0.3" + "@angular-devkit/schematics" "11.0.3" + "@angular-devkit/schematics-cli" "0.1100.3" + "@nestjs/schematics" "^7.1.0" + "@types/webpack" "4.41.25" + chalk "3.0.0" + chokidar "3.4.3" + cli-table3 "0.5.1" + commander "4.1.1" + fork-ts-checker-webpack-plugin "6.0.5" + inquirer "7.3.3" + node-emoji "1.10.0" + ora "5.1.0" + os-name "4.0.0" + rimraf "3.0.2" + shelljs "0.8.4" + tree-kill "1.2.2" + tsconfig-paths "3.9.0" + tsconfig-paths-webpack-plugin "3.3.0" + typescript "4.0.5" + webpack "5.9.0" + webpack-node-externals "2.5.2" + +"@nestjs/common@^7.5.1": + version "7.6.5" + resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-7.6.5.tgz#d6e9435453eef2d1b492384ca27fa23358744949" + integrity sha512-WvBJd71ktaCRm9KTURVqn1YMyUzsOIkvezjP7WEpP9DVqQUOFVvn6/osJGZky/qL+zE4P7NBNyoXM94bpYvMwQ== + dependencies: + axios "0.21.1" + iterare "1.2.1" + tslib "2.0.3" + uuid "8.3.2" + +"@nestjs/core@^7.5.1": + version "7.6.5" + resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-7.6.5.tgz#93c642d1abf8d3f09f8f78c262814eaf83bc2ad6" + integrity sha512-syRpXT09RDMySs1BLQSXJfq1NXGfG4VmF9hZYGef+/QWqTRfSMEDEH5MsCCLt2lK3AZnOXE9BQwWKeNBhKLplA== + dependencies: + "@nuxtjs/opencollective" "0.3.2" + fast-safe-stringify "2.0.7" + iterare "1.2.1" + object-hash "2.1.1" + path-to-regexp "3.2.0" + tslib "2.0.3" + uuid "8.3.2" + +"@nestjs/jwt@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@nestjs/jwt/-/jwt-7.2.0.tgz#d55d15c861b3e0d67a852cbe6131b14c85246852" + integrity sha512-uOTqYmWNpu+oS/MrdYjrWXtKGV4HkCYmAEVEFPP/KfiP/7K6fNy+boLllE6cnqESAXh9u0CLa1noAAavs+LHEQ== + dependencies: + "@types/jsonwebtoken" "8.5.0" + jsonwebtoken "8.5.1" + +"@nestjs/mapped-types@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@nestjs/mapped-types/-/mapped-types-0.1.1.tgz#2fa9ff0f1ddbe66d5d1c80ae59df21c0ed0d1361" + integrity sha512-FROYmmZ2F+tLJP/aHasPMX40iUHQPtEAzOAcfAp21baebN5iLUrdyTuphoXjIqubfPFSwtnAGpVm9kLJjQ//ig== + +"@nestjs/passport@^7.0.0": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@nestjs/passport/-/passport-7.1.5.tgz#b32fc0492008d73ebae4327fbc0012a738a83664" + integrity sha512-Hu9hPxTdBZA0C4GrWTsSflzwsJ99oAk9jqAwpcszdFNqfjMjkPGuCM9QsVZbBP2bE8fxrVrPsNOILS6puY8e/A== + +"@nestjs/platform-express@^7.5.1": + version "7.6.5" + resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-7.6.5.tgz#7ee3df2c104aadac766af8b310bb4d04f4039d4a" + integrity sha512-A3UYYpDFih3WORBcOCiWfPOvKoEmS6Dk7YzrXyCh5KapatqX+XvLbObcjcvqzqonk4bT3IMceyhJp/ZBSwvEPA== + dependencies: + body-parser "1.19.0" + cors "2.8.5" + express "4.17.1" + multer "1.4.2" + tslib "2.0.3" + +"@nestjs/schematics@^7.1.0", "@nestjs/schematics@^7.1.3": + version "7.2.6" + resolved "https://registry.yarnpkg.com/@nestjs/schematics/-/schematics-7.2.6.tgz#cc2c029927550f9b551947053849ebff66c99803" + integrity sha512-4geGO9pjYG4Sc4Qi+pkUVIbaxPEeySHi/z17po8nP9uaPPo8AUKP9rXjNL+mhMrXqFlB/hhN6xBBYtMyL5pB2Q== + dependencies: + "@angular-devkit/core" "11.0.5" + "@angular-devkit/schematics" "11.0.5" + fs-extra "9.0.1" + pluralize "8.0.0" + +"@nestjs/swagger@^4.4.0": + version "4.7.9" + resolved "https://registry.yarnpkg.com/@nestjs/swagger/-/swagger-4.7.9.tgz#062305c0f8875cd1af1924f210ee3f4bcd2f397e" + integrity sha512-5WjtrrbWriHCBN9eDCgr43eTU1S/adlF7RaXjS9YDY553vFABqESfs7riZZy4WhBJ35ldfpzgYoyZv3Z/+DyHQ== + dependencies: + "@nestjs/mapped-types" "0.1.1" + lodash "4.17.20" + path-to-regexp "3.2.0" + +"@nestjs/testing@^7.5.1": + version "7.6.5" + resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-7.6.5.tgz#e2ee5c8a26e303cba17de858b1d7f64d7b0eef98" + integrity sha512-CVjECV3pqy5+HlBSLBRitHgJ8WRW2jns3mKJpSBzUgbJbrGWCB7Y7JGYkP7CQ+29EDKfetnz3+z0q6GPdubfUQ== + dependencies: + optional "0.1.4" + tslib "2.0.3" + +"@nestjs/typeorm@^7.0.0": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@nestjs/typeorm/-/typeorm-7.1.5.tgz#50e3bf85ff8cf78d47d8dd19210c5f02b488f5e3" + integrity sha512-utE1FkYM/gyCXUqw3zKYYS0YZ3DfkAnzsCx4T48cNnSDTCeWS+u3yt0FMDFjwSiQSaLrzpiSff/FaxJQvRlYow== + dependencies: + uuid "8.3.1" + +"@nestjsx/crud-request@^4.6.2": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@nestjsx/crud-request/-/crud-request-4.6.2.tgz#c0d29df354b3de648a44dc0973f80131c953af86" + integrity sha512-EqveTzR5JLMRBnxqJzo0mm7Ff05IzQ6dvfg1gj46q6nOwZ0hfXr0FBTChtciKtkZB/QOlWQ5B1scCap/QuNJWQ== + dependencies: + "@nestjsx/util" "^4.6.2" + qs "^6.8.0" + +"@nestjsx/crud-typeorm@^4.4.2": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@nestjsx/crud-typeorm/-/crud-typeorm-4.6.2.tgz#8d36b07b139489133545673af2209d2f1ce3d4fa" + integrity sha512-RHJlxz9QrLauaCtgRp0C2o38WVLbcZzvFWjHOpsSa8Pti74lUppphiAvlSaOnoMjOtlSCYcHJ954ynKcy0GwLA== + dependencies: + "@zmotivat0r/o0" "^1.0.2" + +"@nestjsx/crud@^4.4.2": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@nestjsx/crud/-/crud-4.6.2.tgz#7b6c3e8642f44f6113e7d9945aa397bbda334b26" + integrity sha512-WWzPI7X2saxJ2No5vO4+zaSRP4CABqSM4NGVAE1VjGQ1ApdjDxj3dFu08Y7YSa5kz+vmrVRwh++Vh+xd9MixUQ== + dependencies: + "@nestjsx/crud-request" "^4.6.2" + "@nestjsx/util" "^4.6.2" + deepmerge "^3.2.0" + +"@nestjsx/util@^4.6.2": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@nestjsx/util/-/util-4.6.2.tgz#89bd31447a30f9666d7ad1616111c78b2d61dd56" + integrity sha512-YG2gQvSm7p8zBFaW6MFM5r1Ihk4Vr189SB2OTr7fV7qcjPS+02v7xILw2dTz2emdmu0t0AgCL2RU1V0lY8Aa9w== + +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + dependencies: + "@nodelib/fs.stat" "2.0.4" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + dependencies: + "@nodelib/fs.scandir" "2.1.4" + fastq "^1.6.0" + +"@nuxtjs/opencollective@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz#620ce1044f7ac77185e825e1936115bb38e2681c" + integrity sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA== + dependencies: + chalk "^4.1.0" + consola "^2.15.0" + node-fetch "^2.6.1" + +"@schematics/schematics@0.1100.3": + version "0.1100.3" + resolved "https://registry.yarnpkg.com/@schematics/schematics/-/schematics-0.1100.3.tgz#bc929e78b1ad09386f7a849a3e08f91429d674d7" + integrity sha512-tzjKnjD90FQ4LgRN9ALT2qCqgJYZrAKoy1embFJRuGKA8vv1hTG4JonVDqQEUoNwTc9r/Ok2Z1eenAI9TSUd1A== + dependencies: + "@angular-devkit/core" "11.0.3" + "@angular-devkit/schematics" "11.0.3" + +"@sinonjs/commons@^1.7.0": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" + integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sqltools/formatter@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.2.tgz#9390a8127c0dcba61ebd7fdcc748655e191bdd68" + integrity sha512-/5O7Fq6Vnv8L6ucmPjaWbVG1XkP4FO+w5glqfkIsq3Xw4oyNAdJddbnYodNDAfjVUvo/rrSCTom4kAND7T1o5Q== + +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz#b9a1efa635201ba9bc850323a8793ee2d36c04a0" + integrity sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg== + dependencies: + "@babel/types" "^7.3.0" + +"@types/bcrypt@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/bcrypt/-/bcrypt-3.0.0.tgz#851489a9065a067cb7f3c9cbe4ce9bed8bba0876" + integrity sha512-nohgNyv+1ViVcubKBh0+XiNJ3dO8nYu///9aJ4cgSqv70gBL+94SNy/iC2NLzKPT2Zt/QavrOkBVbZRLZmw6NQ== + +"@types/body-parser@*": + version "1.19.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" + integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.34.tgz#170a40223a6d666006d93ca128af2beb1d9b1901" + integrity sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== + dependencies: + "@types/node" "*" + +"@types/cookiejar@*": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.2.tgz#66ad9331f63fe8a3d3d9d8c6e3906dd10f6446e8" + integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== + +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.2.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" + integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.45": + version "0.0.45" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" + integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + +"@types/express-serve-static-core@*": + version "4.17.17" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz#6ba02465165b6c9c3d8db3a28def6b16fc9b70f5" + integrity sha512-YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.8": + version "4.17.9" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78" + integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753" + integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg== + dependencies: + "@types/node" "*" + +"@types/helmet@^0.0.45": + version "0.0.45" + resolved "https://registry.yarnpkg.com/@types/helmet/-/helmet-0.0.45.tgz#3eab6550a4e19acf86012596a7f1981529480fd5" + integrity sha512-PsLZI1NqKpXvsMZxh66xAZtpKiTeW+swY8a8LnCNSBbM/mvwU41P3BYoEqkJM9RbITPsq4uhIH0NkIsL9fzPbg== + dependencies: + "@types/express" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@26.x", "@types/jest@^26.0.15": + version "26.0.19" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.19.tgz#e6fa1e3def5842ec85045bd5210e9bb8289de790" + integrity sha512-jqHoirTG61fee6v6rwbnEuKhpSKih0tuhqeFbCmMmErhtu3BYlOZaXWjffgOstMM4S/3iQD31lI5bGLTrs97yQ== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/jsonwebtoken@*", "@types/jsonwebtoken@8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.5.0.tgz#2531d5e300803aa63279b232c014acf780c981c5" + integrity sha512-9bVao7LvyorRGZCw0VmH/dr7Og+NdjYSsKAxB43OQoComFbBgsEpoR9JW6+qSq/ogwVBg8GI2MfAlk4SYI4OLg== + dependencies: + "@types/node" "*" + +"@types/lodash@^4.14.149": + version "4.14.167" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.167.tgz#ce7d78553e3c886d4ea643c37ec7edc20f16765e" + integrity sha512-w7tQPjARrvdeBkX/Rwg95S592JwxqOjmms3zWQ0XZgSyxSLdzWaYH3vErBhdVS/lRBX7F8aBYcYJYTr5TMGOzw== + +"@types/mime@*": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" + integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== + +"@types/minimatch@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*", "@types/node@^14.14.6": + version "14.14.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.19.tgz#5135176a8330b88ece4e9ab1fdcfc0a545b4bab4" + integrity sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/passport-jwt@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/passport-jwt/-/passport-jwt-3.0.3.tgz#47b6c43af668852d7c83e56a23ed9f4515dd1814" + integrity sha512-RlOCXiTitE8kazj9jZc6/BfGCSqnv2w/eYPDm3+3iNsquHn7ratu7oIUskZx9ZtnwMdpvdpy+Z/QYClocH5NvQ== + dependencies: + "@types/express" "*" + "@types/jsonwebtoken" "*" + "@types/passport-strategy" "*" + +"@types/passport-strategy@*": + version "0.2.35" + resolved "https://registry.yarnpkg.com/@types/passport-strategy/-/passport-strategy-0.2.35.tgz#e52f5212279ea73f02d9b06af67efe9cefce2d0c" + integrity sha512-o5D19Jy2XPFoX2rKApykY15et3Apgax00RRLf0RUotPDUsYrQa7x4howLYr9El2mlUApHmCMv5CZ1IXqKFQ2+g== + dependencies: + "@types/express" "*" + "@types/passport" "*" + +"@types/passport@*": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/passport/-/passport-1.0.5.tgz#1ff54ec3e30fa6480c5e8b8de949c6dc40ddfa2a" + integrity sha512-wNL4kT/5rnZgyGkqX7V2qH/R/te+bklv+nXcvHzyX99vNggx9DGN+F8CEOW3P/gRi7Cjm991uidRgTHsYkSuMg== + dependencies: + "@types/express" "*" + +"@types/prettier@^2.0.0": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.6.tgz#f4b1efa784e8db479cdb8b14403e2144b1e9ff03" + integrity sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA== + +"@types/qs@*": + version "6.9.5" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" + integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ== + +"@types/range-parser@*": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" + integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== + +"@types/serve-static@*": + version "1.13.8" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.8.tgz#851129d434433c7082148574ffec263d58309c46" + integrity sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + +"@types/superagent@*": + version "4.1.10" + resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-4.1.10.tgz#5e2cc721edf58f64fe9b819f326ee74803adee86" + integrity sha512-xAgkb2CMWUMCyVc/3+7iQfOEBE75NvuZeezvmixbUw3nmENf2tCnQkW5yQLTYqvXUQ+R6EXxdqKKbal2zM5V/g== + dependencies: + "@types/cookiejar" "*" + "@types/node" "*" + +"@types/supertest@^2.0.10": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.10.tgz#630d79b4d82c73e043e43ff777a9ca98d457cab7" + integrity sha512-Xt8TbEyZTnD5Xulw95GLMOkmjGICrOQyJ2jqgkSjAUR3mm7pAIzSR0NFBaMcwlzVvlpCjNwbATcWWwjNiZiFrQ== + dependencies: + "@types/superagent" "*" + +"@types/tapable@*": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" + integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== + +"@types/uglify-js@*": + version "3.11.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb" + integrity sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q== + dependencies: + source-map "^0.6.1" + +"@types/validator@10.11.3": + version "10.11.3" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-10.11.3.tgz#945799bef24a953c5bc02011ca8ad79331a3ef25" + integrity sha512-GKF2VnEkMmEeEGvoo03ocrP9ySMuX1ypKazIYMlsjfslfBMhOAtC5dmEWKdJioW4lJN7MZRS88kalTsVClyQ9w== + +"@types/webpack-sources@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" + integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@4.41.25": + version "4.41.25" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4" + integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.12.tgz#6234ce3e3e3fa32c5db301a170f96a599c960d74" + integrity sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^4.6.1": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.12.0.tgz#00d1b23b40b58031e6d7c04a5bc6c1a30a2e834a" + integrity sha512-wHKj6q8s70sO5i39H2g1gtpCXCvjVszzj6FFygneNFyIAxRvNSVz9GML7XpqrB9t7hNutXw+MHnLN/Ih6uyB8Q== + dependencies: + "@typescript-eslint/experimental-utils" "4.12.0" + "@typescript-eslint/scope-manager" "4.12.0" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.12.0.tgz#372838e76db76c9a56959217b768a19f7129546b" + integrity sha512-MpXZXUAvHt99c9ScXijx7i061o5HEjXltO+sbYfZAAHxv3XankQkPaNi5myy0Yh0Tyea3Hdq1pi7Vsh0GJb0fA== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.12.0" + "@typescript-eslint/types" "4.12.0" + "@typescript-eslint/typescript-estree" "4.12.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.6.1": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.12.0.tgz#e1cf30436e4f916c31fcc962158917bd9e9d460a" + integrity sha512-9XxVADAo9vlfjfoxnjboBTxYOiNY93/QuvcPgsiKvHxW6tOZx1W4TvkIQ2jB3k5M0pbFP5FlXihLK49TjZXhuQ== + dependencies: + "@typescript-eslint/scope-manager" "4.12.0" + "@typescript-eslint/types" "4.12.0" + "@typescript-eslint/typescript-estree" "4.12.0" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.12.0.tgz#beeb8beca895a07b10c593185a5612f1085ef279" + integrity sha512-QVf9oCSVLte/8jvOsxmgBdOaoe2J0wtEmBr13Yz0rkBNkl5D8bfnf6G4Vhox9qqMIoG7QQoVwd2eG9DM/ge4Qg== + dependencies: + "@typescript-eslint/types" "4.12.0" + "@typescript-eslint/visitor-keys" "4.12.0" + +"@typescript-eslint/types@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.12.0.tgz#fb891fe7ccc9ea8b2bbd2780e36da45d0dc055e5" + integrity sha512-N2RhGeheVLGtyy+CxRmxdsniB7sMSCfsnbh8K/+RUIXYYq3Ub5+sukRCjVE80QerrUBvuEvs4fDhz5AW/pcL6g== + +"@typescript-eslint/typescript-estree@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.12.0.tgz#3963418c850f564bdab3882ae23795d115d6d32e" + integrity sha512-gZkFcmmp/CnzqD2RKMich2/FjBTsYopjiwJCroxqHZIY11IIoN0l5lKqcgoAPKHt33H2mAkSfvzj8i44Jm7F4w== + dependencies: + "@typescript-eslint/types" "4.12.0" + "@typescript-eslint/visitor-keys" "4.12.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.12.0.tgz#a470a79be6958075fa91c725371a83baf428a67a" + integrity sha512-hVpsLARbDh4B9TKYz5cLbcdMIOAoBYgFPCSP9FFS/liSF+b33gVNq8JHY3QGhHNVz85hObvL7BEYLlgx553WCw== + dependencies: + "@typescript-eslint/types" "4.12.0" + eslint-visitor-keys "^2.0.0" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +"@zmotivat0r/o0@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@zmotivat0r/o0/-/o0-1.0.2.tgz#5eb069a631678736234d4c34b07c3a2bae8f8e4b" + integrity sha512-wQ/sHqJEtYb+QtgxtWlBpGASFZ2avpoRWbvpginEuy7howZHTZTy3zYMRMaBKok4bZwIGU5bjmzE59+m1IWqKQ== + +abab@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +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 "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +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@^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: + version "8.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354" + integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ== + +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@6.12.6, ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" + integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@4.1.1, ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3, anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-root-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" + integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axios@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bcrypt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-4.0.1.tgz#06e21e749a061020e4ff1283c1faa93187ac57fe" + integrity sha512-hSIZHkUxIDS5zA2o00Kf2O5RfVbQ888n54xQoF/eIaquU4uaLxK8vhhBdktd0B3n2MjkcAWzv4mnhogykBKOUQ== + dependencies: + node-addon-api "^2.0.0" + node-pre-gyp "0.14.0" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bowser@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" + integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + 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.16.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.0.tgz#410277627500be3cb28a1bfe037586fbedf9488b" + integrity sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ== + dependencies: + caniuse-lite "^1.0.30001165" + colorette "^1.2.1" + electron-to-chromium "^1.3.621" + escalade "^3.1.1" + node-releases "^1.1.67" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha1-bCpiLvz0fFe7vh4qnDetNseSVFM= + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +camelize@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= + +caniuse-lite@^1.0.30001165: + version "1.0.30001173" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56" + integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@3.4.3, chokidar@^3.4.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.1.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +class-transformer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.2.3.tgz#598c92ca71dcca73f91ccb875d74a3847ccfa32d" + integrity sha512-qsP+0xoavpOlJHuYsQJsN58HXSl8Jvveo+T37rEvCEeRfMWoytAyR0Ua/YsFgpM6AZYZ/og2PJwArwzJl1aXtQ== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +class-validator@^0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.11.1.tgz#9033b9ebdc3883e826dfc0c545a45935e3298553" + integrity sha512-6CGdjwJLmKw+sQbK5ZDo1v1yTajkqfPOUDWSYVIlhUiCh6Phy8sAnMFE2XKHAcKAdoOz4jJUQhjPQWPYUuHxrA== + dependencies: + "@types/validator" "10.11.3" + google-libphonenumber "^3.1.6" + validator "12.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-highlight@^2.1.4: + version "2.1.9" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.9.tgz#4f4ecb05326d70d56d4b4249fabf9a70fb002497" + integrity sha512-t8RNIZgiI24i/mslZ8XT8o660RUj5ZbUJpEZrZa/BNekTzdC2LfMRAnt0Y7sgzNM4FGW5tmWg/YnbTH8o1eIOQ== + dependencies: + chalk "^4.0.0" + highlight.js "^10.0.0" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^15.0.0" + +cli-spinners@^2.4.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== + +cli-table3@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.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== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +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= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +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= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" + integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +colors@^1.1.2, colors@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +colorspace@1.1.x: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" + integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== + dependencies: + color "3.0.x" + text-hex "1.0.x" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + +component-emitter@^1.2.1, component-emitter@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +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= + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +consola@^2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.0.tgz#40fc4eefa4d2f8ef2e2806147f056ea207fcc0e9" + integrity sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-security-policy-builder@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz#0a2364d769a3d7014eec79ff7699804deb8cfcbb" + integrity sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ== + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + 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.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + 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 sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookiejar@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" + integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +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= + dependencies: + assert-plus "^1.0.0" + +dasherize@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dasherize/-/dasherize-2.0.0.tgz#6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308" + integrity sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg= + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" + integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +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= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha1-WZbAhrszIYyBLAkL3cCc0S+stw8= + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +dont-sniff-mimetype@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz#c7d0427f8bcb095762751252af59d148b0a623b2" + integrity sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug== + +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +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= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.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.3.621: + version "1.3.633" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz#16dd5aec9de03894e8d14a1db4cda8a369b9b7fe" + integrity sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA== + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enhanced-resolve@^5.3.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.4.1.tgz#c89b0c34f17f931902ef2913a125d4b825b49b6f" + integrity sha512-4GbyIMzYktTFoRSmkbgZ1LU+RXwf4AQ8Z+rSuuh1dC8plp0PPeaWvx6+G4hh4KnUJ48VoxKbNyA1QQQIUpXjYA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +errno@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +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= + +escape-string-regexp@^1.0.2, 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= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.14.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz#5402eb559aa94b894effd6bddfa0b1ca051c858f" + integrity sha512-9sm5/PxaFG7qNJvJzTROMM1Bk1ozXVTKI0buKOyb0Bsr1hrwi0H/TzxF/COtf1uxikIK8SwhX7K6zg78jAzbeA== + +eslint-plugin-prettier@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7" + integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@^7.12.1: + version "7.17.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0" + integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.2.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^6.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +events@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^4.0.0, execa@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +express@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.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= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +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= + +fast-safe-stringify@2.0.7, fast-safe-stringify@^2.0.4, fast-safe-stringify@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== + +fastq@^1.6.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" + integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== + dependencies: + reusify "^1.0.4" + +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== + dependencies: + bser "2.1.1" + +feature-policy@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.3.0.tgz#7430e8e54a40da01156ca30aaec1a381ce536069" + integrity sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ== + +fecha@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" + integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== + +figlet@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.5.0.tgz#2db4d00a584e5155a96080632db919213c3e003c" + integrity sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww== + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" + integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== + dependencies: + flat-cache "^3.0.4" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-versions@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" + integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +follow-redirects@^1.10.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" + integrity sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +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= + +fork-ts-checker-webpack-plugin@6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.0.5.tgz#20d8766b644833cc5c600b9b7c6fbba0c8087419" + integrity sha512-2jIHv2RhXzSxWtvRQX/ZtOxd5joo+FQYzn+sJ/hyLqApKGgvjMEMF951GnvuSNPheGsqiVzIDjvSZo1qRtry1Q== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formidable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" + integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q== + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@9.0.1, fs-extra@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-monkey@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.1.tgz#4a82f36944365e619f4454d9fff106553067b781" + integrity sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA== + +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= + +fsevents@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.1.tgz#1fb02ded2036a8ac288d507a65962bd87b97628d" + integrity sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA== + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +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= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "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-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +google-libphonenumber@^3.1.6: + version "3.2.15" + resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.15.tgz#3a01dc554dbf83c754f249c16df3605e5d154bb9" + integrity sha512-tbCIuzMoH34RdrbFRw5kijAZn/p6JMQvsgtr1glg2ugbwqrMPlOL8pHNK8cyGo9B6SXpcMm4hdyDqwomR+HPRg== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +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= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +helmet-crossdomain@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz#5f1fe5a836d0325f1da0a78eaa5fd8429078894e" + integrity sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA== + +helmet-csp@2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.10.0.tgz#685dde1747bc16c5e28ad9d91e229a69f0a85e84" + integrity sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w== + dependencies: + bowser "2.9.0" + camelize "1.0.0" + content-security-policy-builder "2.1.0" + dasherize "2.0.0" + +helmet@^3.21.3: + version "3.23.3" + resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.23.3.tgz#5ba30209c5f73ded4ab65746a3a11bedd4579ab7" + integrity sha512-U3MeYdzPJQhtvqAVBPntVgAvNSOJyagwZwyKsFdyRa8TV3pOKVFljalPOCxbw5Wwf2kncGhmP0qHjyazIdNdSA== + dependencies: + depd "2.0.0" + dont-sniff-mimetype "1.1.0" + feature-policy "0.3.0" + helmet-crossdomain "0.4.0" + helmet-csp "2.10.0" + hide-powered-by "1.1.0" + hpkp "2.0.0" + hsts "2.2.0" + nocache "2.1.0" + referrer-policy "1.2.0" + x-xss-protection "1.3.0" + +hide-powered-by@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.1.0.tgz#be3ea9cab4bdb16f8744be873755ca663383fa7a" + integrity sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg== + +highlight.js@^10.0.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f" + integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw== + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hpkp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz#10e142264e76215a5d30c44ec43de64dee6d1672" + integrity sha1-EOFCJk52IVpdMMROxD3mTe5tFnI= + +hsts@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/hsts/-/hsts-2.2.0.tgz#09119d42f7a8587035d027dda4522366fe75d964" + integrity sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ== + dependencies: + depd "2.0.0" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +husky@^4.2.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.6.tgz#ebd9dd8b9324aa851f1587318db4cccb7665a13c" + integrity sha512-o6UjVI8xtlWRL5395iWq9LKDyp/9TE7XMOTvIpEVzW638UcGxTmV5cfel6fsk/jbZSTlvfGVJf2svFtybcIZag== + dependencies: + chalk "^4.0.0" + ci-info "^2.0.0" + compare-versions "^3.6.0" + cosmiconfig "^7.0.0" + find-versions "^3.2.0" + opencollective-postinstall "^2.0.2" + pkg-dir "^4.2.0" + please-upgrade-node "^3.2.0" + slash "^3.0.0" + which-pm-runs "^1.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@7.3.3: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.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= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +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= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-typedarray@^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= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +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= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +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= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterare@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" + integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^26.6.1, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1, js-yaml@^3.14.0: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +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= + +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= + +json5@2.x, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@8.5.1, jsonwebtoken@^8.2.0: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +loader-runner@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.1.0.tgz#f70bc0c29edbabdf2043e7ee73ccc3fe1c96b42d" + integrity sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA== + +loader-utils@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +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= + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= + +lodash@4.17.20, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +logform@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2" + integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg== + dependencies: + colors "^1.2.1" + fast-safe-stringify "^2.0.4" + fecha "^4.2.0" + ms "^2.1.1" + triple-beam "^1.3.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +macos-release@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" + integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== + +magic-string@0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x, make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +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= + +memfs@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.0.tgz#f9438e622b5acd1daa8a4ae160c496fdd1325b26" + integrity sha512-f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A== + dependencies: + fs-monkey "1.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +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= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@1.1.2, methods@^1.1.2, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.0, micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + dependencies: + mime-db "1.45.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.6: + version "2.4.7" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.7.tgz#962aed9be0ed19c91fd7dc2ece5d7f4e89a90d74" + integrity sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@1.2.5, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@1.x, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mri@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6" + integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multer@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" + integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== + dependencies: + append-field "^1.0.0" + busboy "^0.2.11" + concat-stream "^1.5.2" + mkdirp "^0.5.1" + object-assign "^4.1.1" + on-finished "^2.3.0" + type-is "^1.6.4" + xtend "^4.0.0" + +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +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= + +needle@^2.2.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.5.2.tgz#cf1a8fce382b5a280108bba90a14993c00e4010a" + integrity sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +nocache@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f" + integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-emoji@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + dependencies: + lodash.toarray "^4.4.0" + +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +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-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1" + integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-pre-gyp@0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4.4.2" + +node-pre-gyp@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" + integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^1.1.67: + version "1.1.68" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.68.tgz#06046ae7ceb33d96e8cd1e8b83bb62fdf2f5e9c5" + integrity sha512-7R8W00OWB5mjUpVFIN6lybhHwsAJVoipjo8MaFtIGRhZ2KeE01VD5ap4RVjLtYEnPKeX0PH14p1OhQVOFTikDQ== + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-bundled@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-packlist@^1.1.6: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== + dependencies: + path-key "^3.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +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== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, 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= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09" + integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +on-finished@^2.3.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +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= + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +optional@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/optional/-/optional-0.1.4.tgz#cdb1a9bedc737d2025f690ceeb50e049444fd5b3" + integrity sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw== + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8" + integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w== + dependencies: + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.4.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" + mute-stream "0.0.8" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-name@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-4.0.0.tgz#6c05c09c41c15848ea74658d12c9606f0f286599" + integrity sha512-caABzDdJMbtykt7GmSogEat3faTKQhmZf0BS5l/pZGmP0vPWQjXWqOhbLyK+b6j2/DQPmEvYdzLXJXXLJNVDNg== + dependencies: + macos-release "^2.2.0" + windows-release "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parent-require@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" + integrity sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc= + +parse-json@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@5.1.1, parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +passport-jwt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065" + integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg== + dependencies: + jsonwebtoken "^8.2.0" + passport-strategy "^1.0.0" + +passport-strategy@1.x.x, passport-strategy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= + +passport@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270" + integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +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= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +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: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +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= + +path-to-regexp@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.2.0.tgz#fa7877ecbc495c601907562222453c43cc204a5f" + integrity sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= + +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= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +pluralize@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +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= + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-quick@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6" + integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A== + dependencies: + chalk "^2.4.2" + execa "^2.1.0" + find-up "^4.1.0" + ignore "^5.1.4" + mri "^1.1.4" + multimatch "^4.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prompts@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +psl@^1.1.28: + 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" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "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.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.8.0, qs@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.7: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +referrer-policy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.2.0.tgz#b99cfb8b57090dc454895ef897a4cc35ef67a98e" + integrity sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA== + +reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +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= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.18.1: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + +rxjs@6.6.3, rxjs@^6.6.0, rxjs@^6.6.3: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", 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== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sax@>=0.6.0, sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.x, semver@^7.2.1, semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shelljs@0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.7.3, source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +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= + +sqlite3@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.2.0.tgz#49026d665e9fc4f922e56fb9711ba5b4c85c4901" + integrity sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.11.0" + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +superagent@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" + integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.2" + debug "^4.1.1" + fast-safe-stringify "^2.0.7" + form-data "^3.0.0" + formidable "^1.2.2" + methods "^1.1.2" + mime "^2.4.6" + qs "^6.9.4" + readable-stream "^3.6.0" + semver "^7.3.2" + +supertest@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.0.1.tgz#f6b54370de85c45d6557192c8d7df604ca2c9e18" + integrity sha512-8yDNdm+bbAN/jeDdXsRipbq9qMpVF7wRsbwLgsANHqdjPsCoecmlTuqEcLQMGpmojFBhxayZ0ckXmLXYq7e+0g== + dependencies: + methods "1.1.2" + superagent "6.1.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +swagger-ui-dist@^3.18.1: + version "3.38.0" + resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.38.0.tgz#fd7c6c04f2eb2dbfedd94722aa3148f3bf354cb5" + integrity sha512-sselV8VY6f1BBauY9Sdmwz0jVaWTnGuHQWei7BaTpiUrLcoEUdmmK5bKefLXiwq+dx//es2S8mOvUS+tcXDsKg== + +swagger-ui-express@^4.1.4: + version "4.1.6" + resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-4.1.6.tgz#682294af3d5c70f74a1fa4d6a9b503a9ee55ea82" + integrity sha512-Xs2BGGudvDBtL7RXcYtNvHsFtP1DBFPMJFRxHe5ez/VG/rzVOEjazJOOSc/kSCyxreCTKfJrII6MJlL9a6t8vw== + dependencies: + swagger-ui-dist "^3.18.1" + +symbol-observable@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" + integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.4: + version "6.0.7" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== + dependencies: + ajv "^7.0.2" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +tar@^4, tar@^4.4.2: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz#ec60542db2421f45735c719d2e17dabfbb2e3e42" + integrity sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ== + dependencies: + jest-worker "^26.6.1" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.8" + +terser@^5.3.8: + version "5.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" + integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +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= + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +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= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + +tree-kill@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +triple-beam@^1.2.0, triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +ts-jest@^26.4.3: + version "26.4.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.4.tgz#61f13fb21ab400853c532270e52cc0ed7e502c49" + integrity sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg== + dependencies: + "@types/jest" "26.x" + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + jest-util "^26.1.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-loader@^8.0.8: + version "8.0.13" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.13.tgz#2bebeb833570ca46bb9338322a9a29900e988535" + integrity sha512-1o1nO6aqouA23d2nlcMSEyPMAWRhnYUU0EQUJSc60E0TUyBNX792RHFYUN1ZM29vhMUNayrsbj2UVdZwKhXCDA== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + loader-utils "^1.0.2" + micromatch "^4.0.0" + semver "^6.0.0" + +ts-node@^9.0.0: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tsconfig-paths-webpack-plugin@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.3.0.tgz#a7461723c20623ca9148621a5ce36532682ad2ff" + integrity sha512-MpQeZpwPY4gYASCUjY4yt2Zj8yv86O8f++3Ai4o0yI0fUC6G1syvnL9VuY71PBgimRYDQU47f12BEmJq9wRaSw== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + tsconfig-paths "^3.4.0" + +tsconfig-paths@3.9.0, tsconfig-paths@^3.4.0, tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== + +tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.17.1: + version "3.18.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.18.0.tgz#38add50a28ec97e988cb43c5b32e55d1ff4a222a" + integrity sha512-D9Tu8nE3E7D1Bsf/V29oMHceMf+gnVO+pDguk/A5YRo1cLpkiQ48ZnbbS57pvvHeY+OIeNQx1vf4ASPlEtRpcA== + dependencies: + tslib "^1.8.1" + +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= + 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= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +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= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typeorm@^0.2.24: + version "0.2.29" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.29.tgz#401289dc91900d72eccb26e31cdb7f0591a2272e" + integrity sha512-ih1vrTe3gEAGKRcWlcsTRxTL7gNjacQE498wVGuJ3ZRujtMqPZlbAWuC7xDzWCRjQnkZYNwZQeG9UgKfxSHB5g== + dependencies: + "@sqltools/formatter" "1.2.2" + app-root-path "^3.0.0" + buffer "^5.5.0" + chalk "^4.1.0" + cli-highlight "^2.1.4" + debug "^4.1.1" + dotenv "^8.2.0" + glob "^7.1.6" + js-yaml "^3.14.0" + mkdirp "^1.0.4" + reflect-metadata "^0.1.13" + sha.js "^2.4.11" + tslib "^1.13.0" + xml2js "^0.4.23" + yargonaut "^1.1.2" + yargs "^16.0.3" + +typescript@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" + integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== + +typescript@^4.0.5: + version "4.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" + integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +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= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +uri-js@^4.2.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, 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= + +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= + +uuid@8.3.1: + version "8.3.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" + integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== + +uuid@8.3.2, uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +v8-to-istanbul@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validator@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-12.0.0.tgz#fb33221f5320abe2422cda2f517dc3838064e813" + integrity sha512-r5zA1cQBEOgYlesRmSEwc9LkbfNLTtji+vWyaHzRZUxCTHdsX3bd+sdHfs5tGZ2W6ILGGsxWxCNwT/h3IY/3ng== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +watchpack@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.0.tgz#e63194736bf3aa22026f7b191cd57907b0f9f696" + integrity sha512-UjgD1mqjkG99+3lgG36at4wPnUXNvis2v1utwTgQ43C22c4LD71LsYMExdWXh4HZ+RmW+B0t1Vrg2GpXAkTOQw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-node-externals@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-2.5.2.tgz#178e017a24fec6015bc9e672c77958a6afac861d" + integrity sha512-aHdl/y2N7PW2Sx7K+r3AxpJO+aDMcYzMQd60Qxefq3+EwhewSbTBqNumOsCE1JsCUNoyfGj5465N0sSf6hc/5w== + +webpack-sources@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack@5.9.0: + version "5.9.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.9.0.tgz#af2e9cf9d6c7867cdcf214ea3bb5eb77aece6895" + integrity sha512-YnnqIV/uAS5ZrNpctSv378qV7HmbJ74DL+XfvMxzbX1bV9e7eeT6eEWU4wuUw33CNr/HspBh7R/xQlVjTEyAeA== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.45" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^8.0.4" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.3.1" + eslint-scope "^5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.1.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + pkg-dir "^4.2.0" + schema-utils "^3.0.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.0.3" + watchpack "^2.0.0" + webpack-sources "^2.1.1" + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +windows-release@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-4.0.0.tgz#4725ec70217d1bf6e02c7772413b29cdde9ec377" + integrity sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg== + dependencies: + execa "^4.0.2" + +winston-transport@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59" + integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw== + dependencies: + readable-stream "^2.3.7" + triple-beam "^1.2.0" + +winston@^3.2.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170" + integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw== + dependencies: + "@dabh/diagnostics" "^2.0.2" + async "^3.1.0" + is-stream "^2.0.0" + logform "^2.2.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.4.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.2.3: + version "7.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== + +x-xss-protection@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.3.0.tgz#3e3a8dd638da80421b0e9fff11a2dbe168f6d52c" + integrity sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml2js@^0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.7.2: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargonaut@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" + integrity sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA== + dependencies: + chalk "^1.1.1" + figlet "^1.1.1" + parent-require "^1.0.0" + +yargs-parser@20.x, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.0.0, yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/node_development/node_frontend/.browserslistrc b/node_development/node_frontend/.browserslistrc new file mode 100644 index 0000000..0ccadaf --- /dev/null +++ b/node_development/node_frontend/.browserslistrc @@ -0,0 +1,18 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR +not IE 9-10 # Angular support for IE 9-10 has been deprecated and will be removed as of Angular v11. To opt-in, remove the 'not' prefix on this line. +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/node_development/node_frontend/.editorconfig b/node_development/node_frontend/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/node_development/node_frontend/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/node_development/node_frontend/.gitignore b/node_development/node_frontend/.gitignore new file mode 100644 index 0000000..86d943a --- /dev/null +++ b/node_development/node_frontend/.gitignore @@ -0,0 +1,46 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json +speed-measure-plugin*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/node_development/node_frontend/.vscode/launch.json b/node_development/node_frontend/.vscode/launch.json new file mode 100644 index 0000000..a6a8238 --- /dev/null +++ b/node_development/node_frontend/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "pwa-chrome", + "request": "launch", + "name": "Launch Chrome against localhost", + "url": "http://localhost:4200", + "webRoot": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/node_development/node_frontend/README.md b/node_development/node_frontend/README.md new file mode 100644 index 0000000..f7ba145 --- /dev/null +++ b/node_development/node_frontend/README.md @@ -0,0 +1,27 @@ +# Queue + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.2.0. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/node_development/node_frontend/angular.json b/node_development/node_frontend/angular.json new file mode 100644 index 0000000..9560e2b --- /dev/null +++ b/node_development/node_frontend/angular.json @@ -0,0 +1,129 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "queue": { + "projectType": "application", + "schematics": {}, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/queue", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "aot": true, + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css", + "node_modules/bootstrap/dist/css/bootstrap.min.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb", + "maximumError": "10kb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "queue:build" + }, + "configurations": { + "production": { + "browserTarget": "queue:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "queue:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "tsconfig.app.json", + "tsconfig.spec.json", + "e2e/tsconfig.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "queue:serve" + }, + "configurations": { + "production": { + "devServerTarget": "queue:serve:production" + } + } + } + } + } + }, + "defaultProject": "queue", + "cli": { + "analytics": "4f5375ca-7336-43fb-9564-15d5014b5325" + } +} \ No newline at end of file diff --git a/node_development/node_frontend/e2e/protractor.conf.js b/node_development/node_frontend/e2e/protractor.conf.js new file mode 100644 index 0000000..f238c0b --- /dev/null +++ b/node_development/node_frontend/e2e/protractor.conf.js @@ -0,0 +1,36 @@ +// @ts-check +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); + +/** + * @type { import("protractor").Config } + */ +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + browserName: 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ + spec: { + displayStacktrace: StacktraceOption.PRETTY + } + })); + } +}; \ No newline at end of file diff --git a/node_development/node_frontend/e2e/src/app.e2e-spec.ts b/node_development/node_frontend/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..fab7fd0 --- /dev/null +++ b/node_development/node_frontend/e2e/src/app.e2e-spec.ts @@ -0,0 +1,23 @@ +import { AppPage } from './app.po'; +import { browser, logging } from 'protractor'; + +describe('workspace-project App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getTitleText()).toEqual('queue app is running!'); + }); + + afterEach(async () => { + // Assert that there are no errors emitted from the browser + const logs = await browser.manage().logs().get(logging.Type.BROWSER); + expect(logs).not.toContain(jasmine.objectContaining({ + level: logging.Level.SEVERE, + } as logging.Entry)); + }); +}); diff --git a/node_development/node_frontend/e2e/src/app.po.ts b/node_development/node_frontend/e2e/src/app.po.ts new file mode 100644 index 0000000..b68475e --- /dev/null +++ b/node_development/node_frontend/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo(): Promise { + return browser.get(browser.baseUrl) as Promise; + } + + getTitleText(): Promise { + return element(by.css('app-root .content span')).getText() as Promise; + } +} diff --git a/node_development/node_frontend/e2e/tsconfig.json b/node_development/node_frontend/e2e/tsconfig.json new file mode 100644 index 0000000..426058e --- /dev/null +++ b/node_development/node_frontend/e2e/tsconfig.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es2018", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} diff --git a/node_development/node_frontend/karma.conf.js b/node_development/node_frontend/karma.conf.js new file mode 100644 index 0000000..e5da9e9 --- /dev/null +++ b/node_development/node_frontend/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, './coverage/queue'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/node_development/node_frontend/package-lock.json b/node_development/node_frontend/package-lock.json new file mode 100644 index 0000000..9895ada --- /dev/null +++ b/node_development/node_frontend/package-lock.json @@ -0,0 +1,13739 @@ +{ + "name": "queue", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1002.0.tgz", + "integrity": "sha512-twM8V03ujBIGVpgV1PBlSDodUdxtUb7WakutfWafAvEHUsgwzfvQz2VtKWvjNZ9AiYjnCuwkQaclqVv0VHNo9w==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-angular": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1002.0.tgz", + "integrity": "sha512-cPkdp1GceokGHc79Wg0hACMqqmnJ4W3H9kY4c9qp1Xz18b3vk1aq09JNawOpfUN09S9vBCnn4glg22lRyqmJNA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.0", + "@angular-devkit/build-optimizer": "0.1002.0", + "@angular-devkit/build-webpack": "0.1002.0", + "@angular-devkit/core": "10.2.0", + "@babel/core": "7.11.1", + "@babel/generator": "7.11.0", + "@babel/plugin-transform-runtime": "7.11.0", + "@babel/preset-env": "7.11.0", + "@babel/runtime": "7.11.2", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "10.2.0", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "css-loader": "4.2.2", + "cssnano": "4.1.10", + "file-loader": "6.0.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "jest-worker": "26.3.0", + "karma-source-map-support": "1.4.0", + "less-loader": "6.2.0", + "license-webpack-plugin": "2.3.0", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "0.10.0", + "minimatch": "3.0.4", + "open": "7.2.0", + "parse5": "6.0.1", + "parse5-htmlparser2-tree-adapter": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "4.0.1", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.26.5", + "rxjs": "6.6.2", + "sass": "1.26.10", + "sass-loader": "10.0.1", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.0.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "1.2.1", + "stylus": "0.54.8", + "stylus-loader": "3.0.2", + "terser": "5.3.0", + "terser-webpack-plugin": "4.1.0", + "tree-kill": "1.2.2", + "webpack": "4.44.1", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.2", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.4.1", + "worker-plugin": "5.0.0" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1002.0.tgz", + "integrity": "sha512-ACnm9doPMbRtSy1UZN5ir7smeLMx0g0oW7jX3jyPepeQKZ+9U1Bn09t10NLZQH+Z509jWZgvNJH/aOh85P6euw==", + "dev": true, + "requires": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.1", + "typescript": "4.0.2", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1002.0.tgz", + "integrity": "sha512-TLBBQ6ANOLKXOPxpCOnxAtoknwHA7XhsLuueN06w5qqF+QNNbWUMPoieKFGs2TnotfCgbiq6x57IDEZTyT6V0w==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.0", + "@angular-devkit/core": "10.2.0", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/core": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.2.0.tgz", + "integrity": "sha512-XAszFhSF3mZw1VjoOsYGbArr5NJLcStjOvcCGjBPl1UBM2AKpuCQXHxI9XJGYKL3B93Vp5G58d8qkHvamT53OA==", + "dev": true, + "requires": { + "ajv": "6.12.4", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.2", + "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.2.0.tgz", + "integrity": "sha512-TQI5NnE6iM3ChF5gZQ9qb+lZgMWa7aLoF5ksOyT3zrmOuICiQYJhA6SsjV95q7J4M55qYymwBib8KTqU/xuQww==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "ora": "5.0.0", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular/animations": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.2.2.tgz", + "integrity": "sha512-vxDbDeGggYeK5YXuBrzeZEO4nrZoQlJfgdUBGPNJmz97ZgX0sgjbmt3y/S7qupHNwdV4QExkaXRlGk0wcYuEqQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/cli": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.2.0.tgz", + "integrity": "sha512-YBzwkFBmG6CdUJk8onsPXxHX/ByU5MERBQgYhLC873e2nZlXMUu+Ttq2Wai6apyskGvsXKxZNPOQSFZTGKXzXg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.0", + "@angular-devkit/core": "10.2.0", + "@angular-devkit/schematics": "10.2.0", + "@schematics/angular": "10.2.0", + "@schematics/update": "0.1002.0", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.1.1", + "ini": "1.3.5", + "inquirer": "7.3.3", + "npm-package-arg": "8.0.1", + "npm-pick-manifest": "6.1.0", + "open": "7.2.0", + "pacote": "9.5.12", + "read-package-tree": "5.3.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "1.2.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true + } + } + }, + "@angular/common": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.2.tgz", + "integrity": "sha512-iV5kTGg7Xe79iih0RzulNFgDhyCgqpf0GC9MsWm663sYfeKaGmO0++O4FKCahE4N/++7thRMFgXy9PpSYDrFfg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.2.2.tgz", + "integrity": "sha512-62wb/aj8ORaUyVcI6cxf07gBc3/hb+bVGl9Yni51e8//G2W7gleyQAXtIeZsT9NHi0KX1nKdXvUVwAoq4u7eHw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler-cli": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.2.2.tgz", + "integrity": "sha512-Erbb7Rs5fo+7/gG1WPwtO5UfSq8qtBBucGu9da/HQLJdw5AO/5pKRl4PLQlxjSopsb8eRC+yVpt9OlCYaY2Chg==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "15.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", + "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "@angular/core": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.2.tgz", + "integrity": "sha512-9IHZF4/zcCKCLGzsbaUeNE8V+R9kcCu0ZNXvqkxd1+vTPdcf00185KzD6CAm+OiskLwvmrudh4vh0CQ+JHSTtQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/forms": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.2.2.tgz", + "integrity": "sha512-ATPMEvM1I/oEXn24qyHpgihYsXrXqnBXJkIGMFb4Tty2ay9xWDtV9aDknvd/7In1/SbHwcSdwhfJJ43apDB6yg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.2.2.tgz", + "integrity": "sha512-vxUKppRS5rIytzp8rV7pcqobopqBqSpXd5Rv/C5yVU9fTqg/hxbMPF8fRDITRqhArtuT7iT3Vv3TK+whqXTyNQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.2.2.tgz", + "integrity": "sha512-+Py/UhIOjsGvOozUFrCS/roAXLwSoE+moiJIxZkMrVVaRx/72P91bF3Zd17kYiXUGyEe7Im5NpXzWeK6y16oRg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/router": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.2.2.tgz", + "integrity": "sha512-jskLB4B3ccJS9YUFGgrR8JC6Ae31U1iw6gefh/S0xP742IxhgexxrxDUu/NAZkLV51sQ++snpnUK9DZU1kpXmA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz", + "integrity": "sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==", + "dev": true + }, + "@babel/core": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", + "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.1", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.0", + "@babel/types": "^7.11.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", + "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz", + "integrity": "sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", + "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", + "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.11.0", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/generator": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "@ngtools/webpack": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.2.0.tgz", + "integrity": "sha512-W4SSFNQhIiC8JRhIn3c4mb1+fsFKiHp+THVMAUNo+wRZEt/rgzsCdnqv0EmQJJojZhnilUIyB/wVYJu2+S/Bxg==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "enhanced-resolve": "4.3.0", + "webpack-sources": "1.4.3" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@schematics/angular": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.2.0.tgz", + "integrity": "sha512-rJRTTTL8CMMFb3ebCvAVHKHxuNzRqy/HtbXhJ82l5Xo/jXcm74eV2Q0RBUrNo1yBKWFIR+FIwiXLJaGcC/R9Pw==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "@angular-devkit/schematics": "10.2.0", + "jsonc-parser": "2.3.0" + } + }, + "@schematics/update": { + "version": "0.1002.0", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1002.0.tgz", + "integrity": "sha512-g2bfJSAj3x/YL0GNhnHsDSQmO6DoxSnLxoFLqNN5+ukxK5jq7OZNDwMJGxZ3X6RcSMWKEkIKL/wlq9yhj2T/kw==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.0", + "@angular-devkit/schematics": "10.2.0", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + } + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", + "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "12.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz", + "integrity": "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.14.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.6.tgz", + "integrity": "sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001154", + "electron-to-chromium": "^1.3.585", + "escalade": "^3.1.1", + "node-releases": "^1.1.65" + } + }, + "browserstack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.0.tgz", + "integrity": "sha512-HJDJ0TSlmkwnt9RZ+v5gFpa1XZTBYTj0ywvLwJ3241J7vMw2jAsGNVhKHtmCOyg+VxeLZyaibO9UL71AsUeDIw==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001156", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001156.tgz", + "integrity": "sha512-z7qztybA2eFZTB6Z3yvaQBIoJpQtsewRD74adw2UbRWwsRq3jIPvgrQGawBMbfafekQaD21FWuXNcywtTDGGCw==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "requires": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + }, + "dependencies": { + "@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "requires": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "core-js-compat": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz", + "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==", + "dev": true, + "requires": { + "browserslist": "^4.14.6", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.2.2.tgz", + "integrity": "sha512-omVGsTkZPVwVRpckeUnLshPp12KsmMSLqYxs12+RzM9jRR5Y+Idn/tBffjXRvOE+qW7if24cuceFJqYR5FmGBg==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "^2.0.0" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.1.0.tgz", + "integrity": "sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg==", + "dev": true, + "requires": { + "css-tree": "^1.0.0" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0.tgz", + "integrity": "sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw==", + "dev": true, + "requires": { + "mdn-data": "2.0.12", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.12.tgz", + "integrity": "sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", + "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.591", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.591.tgz", + "integrity": "sha512-ol/0WzjL4NS4Kqy9VD6xXQON91xIihDT36sYCew/G/bnd1v0/4D+kahp26JauQhgFUjrdva3kRSo7URcUmQ+qw==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ws": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", + "dev": true + } + } + }, + "engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "requires": { + "colors": "1.4.0" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "jest-worker": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonc-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz", + "integrity": "sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz", + "integrity": "sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==", + "dev": true, + "requires": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.0.0", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "flatted": "^2.0.2", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.15", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.21", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "requires": { + "which": "^1.2.1" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "requires": { + "jasmine-core": "^3.6.0" + } + }, + "karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true + }, + "less": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", + "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "less-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.2.0.tgz", + "integrity": "sha512-Cl5h95/Pz/PWub/tCBgT1oNMFeH1WTD33piG80jn5jr12T4XbxZcjThwNXDQ7AG649WEynuIzO4b0+2Tn9Qolg==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "less": "^3.11.3", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "license-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-JK/DXrtN6UeYQSgkg5q1+pgJ8aiKPL9tnz9Wzw+Ikkf+8mJxG56x6t8O+OH/tAeF/5NREnelTEMyFtbJNkjH4w==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + } + }, + "loglevel": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", + "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.10.0.tgz", + "integrity": "sha512-QgKgJBjaJhxVPwrLNqqwNS0AGkuQQ31Hp4xGXEK/P7wehEg6qmNtReHKai3zRXqY60wGVWLYcOMJK2b98aGc3A==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "ngx-countdown": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ngx-countdown/-/ngx-countdown-11.0.0.tgz", + "integrity": "sha512-1ACzAkYExshs24D2RkHjX2iyP1DPhegHkLvr7o8fVhHD+7p7X5Ww08lpg9gpYUxLjSsz/txKATPAozXEx4717g==", + "requires": { + "tslib": "^2.0.0" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.66", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz", + "integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "npm-registry-fetch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.2.0.tgz", + "integrity": "sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, + "ora": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz", + "integrity": "sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pacote": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "dependencies": { + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "raw-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "dev": true, + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz", + "integrity": "sha512-rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.26.10", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.10.tgz", + "integrity": "sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.1.tgz", + "integrity": "sha512-b2PSldKVTS3JcFPHSrEXh3BeAfR7XknGiGCAO5aHruR3Pf3kqLP3Gb2ypXLglRrAzgZkloNxLZ7GXEGDX0hBUQ==", + "dev": true, + "requires": { + "klona": "^2.0.3", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-loader": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.2.tgz", + "integrity": "sha512-oX8d6ndRjN+tVyjj6PlXSyFPhDdVAPsZA30nD3/II8g4uOv8fCz0DMn5sy8KtVbDfKQxOpGwGJnK3xIW3tauDw==", + "dev": true, + "requires": { + "data-urls": "^2.0.0", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "style-loader": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "terser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", + "integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.3.0", + "p-limit": "^3.0.2", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^5.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + } + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "webpack": { + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", + "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", + "dev": true, + "requires": { + "webpack-sources": "^1.3.0" + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + } +} diff --git a/node_development/node_frontend/package.json b/node_development/node_frontend/package.json new file mode 100644 index 0000000..4cd0993 --- /dev/null +++ b/node_development/node_frontend/package.json @@ -0,0 +1,48 @@ +{ + "name": "queue", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "~10.2.0", + "@angular/common": "~10.2.0", + "@angular/compiler": "~10.2.0", + "@angular/core": "~10.2.0", + "@angular/forms": "~10.2.0", + "@angular/platform-browser": "~10.2.0", + "@angular/platform-browser-dynamic": "~10.2.0", + "@angular/router": "~10.2.0", + "bootstrap": "^4.5.3", + "ngx-countdown": "^11.0.0", + "rxjs": "~6.6.0", + "tslib": "^2.0.0", + "zone.js": "~0.10.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1002.0", + "@angular/cli": "~10.2.0", + "@angular/compiler-cli": "~10.2.0", + "@types/node": "^12.11.1", + "@types/jasmine": "~3.5.0", + "@types/jasminewd2": "~2.0.3", + "codelyzer": "^6.0.0", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~5.0.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~4.0.2" + } +} diff --git a/node_development/node_frontend/src/app/app-routing.module.ts b/node_development/node_frontend/src/app/app-routing.module.ts new file mode 100644 index 0000000..fe83d66 --- /dev/null +++ b/node_development/node_frontend/src/app/app-routing.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { EventsComponent } from './events/events.component'; +import {JoinqueueComponent} from './joinqueue/joinqueue.component' +import { LoginComponent } from './login/login.component'; +import { RegisterComponent } from './register/register.component'; +import { ShowqueueComponent } from './showqueue/showqueue.component'; + + + + +const routes: Routes = [ + {path:'',component:EventsComponent}, + {path:'registration', component:RegisterComponent}, + {path:'login',component:LoginComponent}, + {path:'events',component:EventsComponent}, + {path:'joinqueue',component:JoinqueueComponent}, + {path:'showqueue',component:ShowqueueComponent}, +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/node_development/node_frontend/src/app/app.component.css b/node_development/node_frontend/src/app/app.component.css new file mode 100644 index 0000000..e69de29 diff --git a/node_development/node_frontend/src/app/app.component.html b/node_development/node_frontend/src/app/app.component.html new file mode 100644 index 0000000..a2ed27e --- /dev/null +++ b/node_development/node_frontend/src/app/app.component.html @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/node_development/node_frontend/src/app/app.component.spec.ts b/node_development/node_frontend/src/app/app.component.spec.ts new file mode 100644 index 0000000..13606f0 --- /dev/null +++ b/node_development/node_frontend/src/app/app.component.spec.ts @@ -0,0 +1,35 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + RouterTestingModule + ], + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'queuemanagement'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('queuemanagement'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement; + expect(compiled.querySelector('.content span').textContent).toContain('queuemanagement app is running!'); + }); +}); diff --git a/node_development/node_frontend/src/app/app.component.ts b/node_development/node_frontend/src/app/app.component.ts new file mode 100644 index 0000000..6eb9c56 --- /dev/null +++ b/node_development/node_frontend/src/app/app.component.ts @@ -0,0 +1,37 @@ +import { Component } from '@angular/core'; +import { Router } from '@angular/router'; +import { LogoutService } from './shared/services/logout/logout.service'; +import {AuthService} from './authentication/auth/auth.service'; + + + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'] +}) +export class AppComponent { + + isLoggedIn:boolean; + token:any; + constructor(public service:LogoutService, private router:Router,public authService:AuthService){ + + } + + logout(){ + localStorage.removeItem('LoggedInUser'); + localStorage.removeItem('currentEvent'); + localStorage.removeItem('events'); + this.router.navigate(["/login"]); + } + + navbarOpen= false; + toggleNavbar(){ + this.navbarOpen=!this.navbarOpen; + } + + goToEvents(){ + this.router.navigate(['/events']); + } + } + diff --git a/node_development/node_frontend/src/app/app.module.ts b/node_development/node_frontend/src/app/app.module.ts new file mode 100644 index 0000000..0c91e8a --- /dev/null +++ b/node_development/node_frontend/src/app/app.module.ts @@ -0,0 +1,44 @@ +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import {FormsModule} from '@angular/forms'; +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { LoginComponent } from './login/login.component'; +import { RegisterComponent } from './register/register.component'; +import { EventsComponent } from './events/events.component'; +import {JoinqueueComponent} from './joinqueue/joinqueue.component' +import { ShowqueueComponent } from './showqueue/showqueue.component'; + +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { CountdownModule } from 'ngx-countdown'; + + + + +@NgModule({ + declarations: [ + AppComponent, + LoginComponent, + RegisterComponent, + EventsComponent, + JoinqueueComponent, + ShowqueueComponent + ], + imports: [ + BrowserModule, + AppRoutingModule, + FormsModule, + HttpClientModule, + BrowserAnimationsModule, + CountdownModule + + ], + providers: [ + + ], + bootstrap: [AppComponent] +}) +export class AppModule { + +} diff --git a/node_development/node_frontend/src/app/authentication/auth/auth.service.spec.ts b/node_development/node_frontend/src/app/authentication/auth/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/node_development/node_frontend/src/app/authentication/auth/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/authentication/auth/auth.service.ts b/node_development/node_frontend/src/app/authentication/auth/auth.service.ts new file mode 100644 index 0000000..557c0cd --- /dev/null +++ b/node_development/node_frontend/src/app/authentication/auth/auth.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + + public logged = false; + constructor() { } + + public isLogged(): boolean { + return this.logged; + } + public setLogged(login: boolean): void { + this.logged = login; + } + +} diff --git a/node_development/node_frontend/src/app/events/events.component.css b/node_development/node_frontend/src/app/events/events.component.css new file mode 100644 index 0000000..e69de29 diff --git a/node_development/node_frontend/src/app/events/events.component.html b/node_development/node_frontend/src/app/events/events.component.html new file mode 100644 index 0000000..dcce15b --- /dev/null +++ b/node_development/node_frontend/src/app/events/events.component.html @@ -0,0 +1,20 @@ + +
+
+
+
+
+
{{event.eventName}}
+

{{event.description}}

+ Go To Event +
+
+
+
+
+
+ + + + + diff --git a/node_development/node_frontend/src/app/events/events.component.spec.ts b/node_development/node_frontend/src/app/events/events.component.spec.ts new file mode 100644 index 0000000..4e47e46 --- /dev/null +++ b/node_development/node_frontend/src/app/events/events.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EventsComponent } from './events.component'; + +describe('EventsComponent', () => { + let component: EventsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ EventsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(EventsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/events/events.component.ts b/node_development/node_frontend/src/app/events/events.component.ts new file mode 100644 index 0000000..9d9e49c --- /dev/null +++ b/node_development/node_frontend/src/app/events/events.component.ts @@ -0,0 +1,72 @@ +import { JsonPipe } from '@angular/common'; +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { Event, FilterQueueDetail, JoinCriteria, QueueDetail, Visitor } from '../shared/models/interface' +import { EventsService } from '../shared/services/events/events.service'; +import { IsJoinedQueueService } from '../shared/services/isJoinedQueue/is-joined-queue.service'; + + +@Component({ + selector: 'app-events', + templateUrl: './events.component.html', + styleUrls: ['./events.component.css'] +}) +export class EventsComponent implements OnInit { + + events: Array; + userToken: Visitor; + currentEvent: Event = new Event(); + queueDetail: QueueDetail = new QueueDetail(); + queueDetailFilter: FilterQueueDetail = new FilterQueueDetail; + asyncResult: any; + constructor(private router: Router, private eventService: EventsService, private isJoinedQueueService: IsJoinedQueueService) { } + + + ngOnInit(): void { + + this.getAllTheEvents(); + + } + + async getAllTheEvents() { + this.asyncResult = await this.eventService.getEvents().toPromise(); + this.events = this.asyncResult; + localStorage.setItem("events", JSON.stringify(this.events)); + console.log('Response Received.'); + console.log(this.events); + } + + goToEvent(event: any) { + this.userToken = JSON.parse(localStorage.getItem('LoggedInUser')); + if (this.userToken == null) { + this.router.navigate(['/login']); + } else { + localStorage.setItem("currentEvent", JSON.stringify(event)); + let currentQueueDetail = localStorage.getItem('currentQueueDetail'); + if (currentQueueDetail!=null) { + let currentlyJoinedData = (localStorage.getItem('queueDetail_' + JSON.stringify(event.id) + '_' + JSON.stringify(this.userToken.id))); + if (currentlyJoinedData != null) { + this.router.navigate(['/showqueue']); + } + else { + this.router.navigate(['/joinqueue']); + } + } + else { + this.router.navigate(['/joinqueue']); + } + + } + } +} + + + + + + + + + + + diff --git a/node_development/node_frontend/src/app/joinqueue/joinqueue.component.css b/node_development/node_frontend/src/app/joinqueue/joinqueue.component.css new file mode 100644 index 0000000..e69de29 diff --git a/node_development/node_frontend/src/app/joinqueue/joinqueue.component.html b/node_development/node_frontend/src/app/joinqueue/joinqueue.component.html new file mode 100644 index 0000000..f8d85d1 --- /dev/null +++ b/node_development/node_frontend/src/app/joinqueue/joinqueue.component.html @@ -0,0 +1,14 @@ +
+
+
+

{{event.eventName}}



+
Currently available Queue
+

{{currentlyAvailableQueue}}


+ +
+
+


+
Go Back to Events
+ + + diff --git a/node_development/node_frontend/src/app/joinqueue/joinqueue.component.spec.ts b/node_development/node_frontend/src/app/joinqueue/joinqueue.component.spec.ts new file mode 100644 index 0000000..c710e2c --- /dev/null +++ b/node_development/node_frontend/src/app/joinqueue/joinqueue.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { JoinqueueComponent } from './joinqueue.component'; + +describe('JoinqueueComponent', () => { + let component: JoinqueueComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ JoinqueueComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(JoinqueueComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/joinqueue/joinqueue.component.ts b/node_development/node_frontend/src/app/joinqueue/joinqueue.component.ts new file mode 100644 index 0000000..c5fb4b9 --- /dev/null +++ b/node_development/node_frontend/src/app/joinqueue/joinqueue.component.ts @@ -0,0 +1,53 @@ + +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; + +import { JoinCriteria, Event, QueueDetail, Visitor } from '../shared/models/interface'; +import { IsJoinedQueueService } from '../shared/services/isJoinedQueue/is-joined-queue.service'; +import { JoinqueueService } from '../shared/services/joinqueue/joinqueue.service'; + + +@Component({ + selector: 'app-joinqueue', + templateUrl: './joinqueue.component.html', + styleUrls: ['./joinqueue.component.css'] +}) +export class JoinqueueComponent implements OnInit { + currentlyAvailableQueue: string="Q123"; + constructor(private router:Router,private joinQueueService:JoinqueueService,private isjoinedQueueService:IsJoinedQueueService) { } + + + queueDetail:any; + criteria:JoinCriteria=new JoinCriteria(); + visitor:Visitor=new Visitor(); + event:Event=new Event(); + asyncResult:any; + currentlyJoinedEvent:any; + + ngOnInit(): void { + + this.event=JSON.parse(localStorage.getItem('currentEvent')); + console.log(localStorage.getItem('LoggedInUser')); + this.visitor=JSON.parse(localStorage.getItem('LoggedInUser')); + + } + + goBackToEvents(){ + + this.router.navigate(['/events']); + } + + async joinQueue(){ + this.criteria.eventId=this.event.id; + console.log(this.criteria); + this.criteria.visitorId=this.visitor.id; + console.log(this.criteria); + this.asyncResult=await this.joinQueueService.joinQueue(this.criteria).toPromise(); + this.queueDetail=this.asyncResult; + this.currentlyJoinedEvent=this.event.id+"_"+this.visitor.id; + localStorage.setItem('currentQueueDetail',JSON.stringify(this.queueDetail)); + localStorage.setItem('queueDetail_'+(this.currentlyJoinedEvent),this.currentlyJoinedEvent); + this.router.navigate(['/showqueue']); + + } +} diff --git a/node_development/node_frontend/src/app/login/login.component.css b/node_development/node_frontend/src/app/login/login.component.css new file mode 100644 index 0000000..e69de29 diff --git a/node_development/node_frontend/src/app/login/login.component.html b/node_development/node_frontend/src/app/login/login.component.html new file mode 100644 index 0000000..c92e31d --- /dev/null +++ b/node_development/node_frontend/src/app/login/login.component.html @@ -0,0 +1,41 @@ +
+
+
+
+

Login

+
+
+
+ +
+ + +
+ Email is required + Enter valid Email Id +
+
+
+ + +
+ Password is required + Password should have Minimum eight characters, one upper case, one lower case, one number and a special character. +
+
+ +
+
New User? Register Here!
+
+
+
+
+ + + + + diff --git a/node_development/node_frontend/src/app/login/login.component.spec.ts b/node_development/node_frontend/src/app/login/login.component.spec.ts new file mode 100644 index 0000000..d2c0e6c --- /dev/null +++ b/node_development/node_frontend/src/app/login/login.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LoginComponent } from './login.component'; + +describe('LoginComponent', () => { + let component: LoginComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ LoginComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(LoginComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/login/login.component.ts b/node_development/node_frontend/src/app/login/login.component.ts new file mode 100644 index 0000000..4c32537 --- /dev/null +++ b/node_development/node_frontend/src/app/login/login.component.ts @@ -0,0 +1,41 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { AuthService } from '../authentication/auth/auth.service'; +import { LogInVisitor, Visitor } from '../shared/models/interface'; +import { LoginService } from '../shared/services/login/login.service'; +import { LogoutService } from '../shared/services/logout/logout.service'; + +@Component({ + selector: 'app-login', + templateUrl: './login.component.html', + styleUrls: ['./login.component.css'] +}) +export class LoginComponent implements OnInit { + + loginVisitor:LogInVisitor=new LogInVisitor(); + + loginToken:string; + constructor(private router:Router, private service:LogoutService, private loginService:LoginService,public authService:AuthService) { } + + token: any; + ngOnInit(): void { + + + } + + async loginSubmit(loginFormValue) { + console.log("inside login"); + this.loginVisitor.username=loginFormValue.username; + this.loginVisitor.password=loginFormValue.password; + console.log(this.loginVisitor); + let response=await this.loginService.login(this.loginVisitor).toPromise(); + console.log(response); + if(response){ + console.log('Login Successful'); + localStorage.setItem('LoggedInUser',JSON.stringify(response)); + this.router.navigate(['/events']); + } + } +} + + diff --git a/node_development/node_frontend/src/app/register/register.component.css b/node_development/node_frontend/src/app/register/register.component.css new file mode 100644 index 0000000..e69de29 diff --git a/node_development/node_frontend/src/app/register/register.component.html b/node_development/node_frontend/src/app/register/register.component.html new file mode 100644 index 0000000..e33c776 --- /dev/null +++ b/node_development/node_frontend/src/app/register/register.component.html @@ -0,0 +1,70 @@ + +
+
+
+
+

Register

+
+
+
+
+ + +
+ Email is required + Enter valid Email Id +
+
+
+ + + Name is required +
+
+ + + +
+ Phone is required + Phone should be of 10 digits +
+
+
+ + +
+ Password is required + Password should have Minimum eight characters, one upper case, one lower case, one number and a special character. +
+
+
+ + + Password and Confirm Password must be same. +
+ +
+ + +
+
+ + +
+ +
+
+
+
+
+ + diff --git a/node_development/node_frontend/src/app/register/register.component.spec.ts b/node_development/node_frontend/src/app/register/register.component.spec.ts new file mode 100644 index 0000000..f6db869 --- /dev/null +++ b/node_development/node_frontend/src/app/register/register.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RegisterComponent } from './register.component'; + +describe('RegisterComponent', () => { + let component: RegisterComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ RegisterComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(RegisterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/register/register.component.ts b/node_development/node_frontend/src/app/register/register.component.ts new file mode 100644 index 0000000..26191bc --- /dev/null +++ b/node_development/node_frontend/src/app/register/register.component.ts @@ -0,0 +1,53 @@ +import { Component, OnInit } from '@angular/core'; +import { NgForm } from '@angular/forms'; +import { Router } from '@angular/router'; +import { Visitor } from '../shared/models/interface' +import { LoginService } from '../shared/services/login/login.service'; +import { RegistrationService } from '../shared/services/registration/registration.service'; + +@Component({ + selector: 'app-register', + templateUrl: './register.component.html', + styleUrls: ['./register.component.css'] +}) +export class RegisterComponent implements OnInit { + + visitorResult: Visitor; + visitorToken:string; + visitor:Visitor=new Visitor(); + + constructor(private router:Router,private registrationService:RegistrationService,private loginService:LoginService) { } + + ngOnInit(): void { + + } + + async registerationSubmit(registrationFormValue){ + console.log(registrationFormValue); + this.visitor.username =registrationFormValue.username; + this.visitor.name =registrationFormValue.name; + this.visitor.phoneNumber = registrationFormValue.phone; + this.visitor.password = registrationFormValue.password; + this.visitor.acceptedCommercial = registrationFormValue.acceptedCommercial; + this.visitor.acceptedTerms = registrationFormValue.acceptedTerms; + this.visitor.role =0; + console.log(this.visitor); + let asyncResult= await this.registrationService.register(this.visitor).toPromise(); + console.log(asyncResult); + if(asyncResult){ + console.log("async Result"); + console.log("Registered Successfully"); + this.router.navigate(['/login']); + } + else{ + console.log("Error Occurred") + //throw new Error(`HTTP error! status: ${asyncResult.status}`); + } + + + } + +} + + + diff --git a/node_development/node_frontend/src/app/shared/models/interface.ts b/node_development/node_frontend/src/app/shared/models/interface.ts new file mode 100644 index 0000000..c5945cf --- /dev/null +++ b/node_development/node_frontend/src/app/shared/models/interface.ts @@ -0,0 +1,81 @@ +export class Visitor{ + id?:number; + username:string; + name:string; + phoneNumber:string; + password:string; + acceptedCommercial:boolean; + acceptedTerms:boolean; + role: number; + + constructor(){ + + } +} + +export class LogInVisitor{ + username:string; + password:string; + role:number; +} + +export class FilterVisitor { + pageable: Pageable; + username?: string; + password?: string; +} + +export class Pageable { + pageSize: number; + pageNumber: number; + sort?: Sort[]; +} + +export class Sort { + property: string; + direction: string; +} + +export class Role { + name: string; + permission: number; + +} + +export class FilterQueueDetail { +visitorId?: Number; +eventId?: Number; +} + +export class JoinCriteria { +visitorId?: number; +eventId?: number; +} + +export class FilterEvent { +pageable: Pageable; +id?: number; +} +export class QueueDetail { +id?: number; +queueNumber: string; +creationTime: string; +startTime?: string; +endTime?: string; +minEstimatedTime:string; +visitorId: number; +eventId: number; +} + +export class Event { +id?: number; +eventName: string; +startDate:string; +endDate:string; +location:string; +description:string; +attentionTime: string; +visitorCount:number; +isJoined:boolean; +} + diff --git a/node_development/node_frontend/src/app/shared/services/auth/auth.service.spec.ts b/node_development/node_frontend/src/app/shared/services/auth/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/auth/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/auth/auth.service.ts b/node_development/node_frontend/src/app/shared/services/auth/auth.service.ts new file mode 100644 index 0000000..4c2a71b --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/auth/auth.service.ts @@ -0,0 +1,14 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + + constructor() { } + + authUser(User:any){ + let UserArray:[]; + // if(localStorage.getItem('Users')) + } +} diff --git a/node_development/node_frontend/src/app/shared/services/events/events.service.spec.ts b/node_development/node_frontend/src/app/shared/services/events/events.service.spec.ts new file mode 100644 index 0000000..162cd5c --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/events/events.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { EventsService } from './events.service'; + +describe('EventsService', () => { + let service: EventsService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(EventsService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/events/events.service.ts b/node_development/node_frontend/src/app/shared/services/events/events.service.ts new file mode 100644 index 0000000..40e08ee --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/events/events.service.ts @@ -0,0 +1,29 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from '@angular/common/http' +import { Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; +import { FilterEvent, FilterQueueDetail, JoinCriteria,Visitor } from '../../models/interface'; + + +@Injectable({ + providedIn: 'root' +}) +export class EventsService { + + eventId:number; + visitorId:number; + + private baseUrl=environment.baseUrlRestServices; + constructor(private http:HttpClient) { } + + + getEvents():Observable{ + console.log("get event service"); + return this.http.get(`${this.baseUrl}`+'/event/events'); + +} + + + +} + diff --git a/node_development/node_frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.spec.ts b/node_development/node_frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.spec.ts new file mode 100644 index 0000000..8a464eb --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { IsJoinedQueueService } from './is-joined-queue.service'; + +describe('IsJoinedQueueService', () => { + let service: IsJoinedQueueService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(IsJoinedQueueService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.ts b/node_development/node_frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.ts new file mode 100644 index 0000000..ee8abd6 --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/isJoinedQueue/is-joined-queue.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class IsJoinedQueueService { + + isJoined:boolean=false; + + constructor() { } +} diff --git a/node_development/node_frontend/src/app/shared/services/joinqueue/joinqueue.service.spec.ts b/node_development/node_frontend/src/app/shared/services/joinqueue/joinqueue.service.spec.ts new file mode 100644 index 0000000..0f7425d --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/joinqueue/joinqueue.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { JoinqueueService } from './joinqueue.service'; + +describe('JoinqueueService', () => { + let service: JoinqueueService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(JoinqueueService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/joinqueue/joinqueue.service.ts b/node_development/node_frontend/src/app/shared/services/joinqueue/joinqueue.service.ts new file mode 100644 index 0000000..eb4bebd --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/joinqueue/joinqueue.service.ts @@ -0,0 +1,20 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Router } from '@angular/router'; +import { Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; +import { JoinCriteria } from '../../models/interface'; + + +@Injectable({ + providedIn: 'root' +}) +export class JoinqueueService { + + private baseUrl=environment.baseUrlRestServices; + constructor(private http:HttpClient) { } + + joinQueue(criteria:JoinCriteria):Observable{ + return this.http.post(`${this.baseUrl}`+'/queue-detail/queue-details/joinQueue',criteria) + } +} diff --git a/node_development/node_frontend/src/app/shared/services/login/login.service.spec.ts b/node_development/node_frontend/src/app/shared/services/login/login.service.spec.ts new file mode 100644 index 0000000..299b0d5 --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/login/login.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { LoginService } from './login.service'; + +describe('LoginService', () => { + let service: LoginService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(LoginService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/login/login.service.ts b/node_development/node_frontend/src/app/shared/services/login/login.service.ts new file mode 100644 index 0000000..4828f06 --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/login/login.service.ts @@ -0,0 +1,21 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { environment } from 'src/environments/environment'; +import { FilterVisitor, LogInVisitor, Pageable, Sort, Visitor } from '../../models/interface'; + +@Injectable({ + providedIn: 'root' +}) +export class LoginService { + + loginVisitor:Visitor=new Visitor(); + private baseUrl = environment.baseUrlRestServices; + constructor(private http:HttpClient) { } + + login(loginVisitor:LogInVisitor):Observable{ + return this.http.post(`${this.baseUrl}`+'/auth/login/',loginVisitor); + } +} + diff --git a/node_development/node_frontend/src/app/shared/services/logout.service.spec.ts b/node_development/node_frontend/src/app/shared/services/logout.service.spec.ts new file mode 100644 index 0000000..234af9d --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/logout.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { LogoutService } from './logout.service'; + +describe('LogoutService', () => { + let service: LogoutService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(LogoutService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/logout.service.ts b/node_development/node_frontend/src/app/shared/services/logout.service.ts new file mode 100644 index 0000000..5e27c87 --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/logout.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class LogoutService { + + isLoggedIn: boolean; + token:any; + constructor() { + + } + + isUserLoggedIn(){ + return !!localStorage.getItem('token');//checking whether token is present or not + } + + +} diff --git a/node_development/node_frontend/src/app/shared/services/logout/logout.service.spec.ts b/node_development/node_frontend/src/app/shared/services/logout/logout.service.spec.ts new file mode 100644 index 0000000..234af9d --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/logout/logout.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { LogoutService } from './logout.service'; + +describe('LogoutService', () => { + let service: LogoutService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(LogoutService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/logout/logout.service.ts b/node_development/node_frontend/src/app/shared/services/logout/logout.service.ts new file mode 100644 index 0000000..7739261 --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/logout/logout.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class LogoutService { + + isLoggedIn: boolean; + token:any; + constructor() { + + } + + isUserLoggedIn(){ + return !!localStorage.getItem('LoggedInUser'); //checking whether logged in token is present or not + } + + +} diff --git a/node_development/node_frontend/src/app/shared/services/registration/registration.service.spec.ts b/node_development/node_frontend/src/app/shared/services/registration/registration.service.spec.ts new file mode 100644 index 0000000..5f3dfc3 --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/registration/registration.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { RegistrationService } from './registration.service'; + +describe('RegistrationService', () => { + let service: RegistrationService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(RegistrationService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/registration/registration.service.ts b/node_development/node_frontend/src/app/shared/services/registration/registration.service.ts new file mode 100644 index 0000000..43e5c06 --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/registration/registration.service.ts @@ -0,0 +1,22 @@ +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; +import {HttpClient} from '@angular/common/http' +import { Visitor } from '../../models/interface'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class RegistrationService { + + private baseUrl=environment.baseUrlRestServices; + + constructor(private http:HttpClient) {} + + register(visitor: Visitor): Observable { + console.log('inside registerService'); + console.log(visitor); + return this.http.post(`${this.baseUrl}` + '/auth/register',visitor); + + } +} diff --git a/node_development/node_frontend/src/app/shared/services/showqueue/showqueue.service.spec.ts b/node_development/node_frontend/src/app/shared/services/showqueue/showqueue.service.spec.ts new file mode 100644 index 0000000..25e01cb --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/showqueue/showqueue.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ShowqueueService } from './showqueue.service'; + +describe('ShowqueueService', () => { + let service: ShowqueueService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ShowqueueService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/shared/services/showqueue/showqueue.service.ts b/node_development/node_frontend/src/app/shared/services/showqueue/showqueue.service.ts new file mode 100644 index 0000000..493806f --- /dev/null +++ b/node_development/node_frontend/src/app/shared/services/showqueue/showqueue.service.ts @@ -0,0 +1,20 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class ShowqueueService { + + private baseUrl=environment.baseUrlRestServices; + constructor(private http:HttpClient) { } + + + deleteQueue(queueDetailId:number):Observable{ + console.log("inside deleteQueue service "+queueDetailId); + return this.http.delete(`${this.baseUrl}`+'/queue-detail/queue-details/'+queueDetailId); + + } +} diff --git a/node_development/node_frontend/src/app/showqueue/showqueue.component.css b/node_development/node_frontend/src/app/showqueue/showqueue.component.css new file mode 100644 index 0000000..e69de29 diff --git a/node_development/node_frontend/src/app/showqueue/showqueue.component.html b/node_development/node_frontend/src/app/showqueue/showqueue.component.html new file mode 100644 index 0000000..3ef994c --- /dev/null +++ b/node_development/node_frontend/src/app/showqueue/showqueue.component.html @@ -0,0 +1,16 @@ +
+
+
+

{{event.eventName}}



+

Your Position in Queue is:

{{queueDetail.queueNumber}}

+ +

Estimated remaining time for your turn is:

+

Currently attended Queue position number is:

{{currentlyAttendedQueueNumber}}


+ +
+
+

+
Go Back to Events
+ + + diff --git a/node_development/node_frontend/src/app/showqueue/showqueue.component.spec.ts b/node_development/node_frontend/src/app/showqueue/showqueue.component.spec.ts new file mode 100644 index 0000000..e7058b2 --- /dev/null +++ b/node_development/node_frontend/src/app/showqueue/showqueue.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ShowqueueComponent } from './showqueue.component'; + +describe('ShowqueueComponent', () => { + let component: ShowqueueComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ShowqueueComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ShowqueueComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/node_development/node_frontend/src/app/showqueue/showqueue.component.ts b/node_development/node_frontend/src/app/showqueue/showqueue.component.ts new file mode 100644 index 0000000..d6f79a4 --- /dev/null +++ b/node_development/node_frontend/src/app/showqueue/showqueue.component.ts @@ -0,0 +1,46 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { ShowqueueService } from '../shared/services/showqueue/showqueue.service'; + +@Component({ + selector: 'app-showqueue', + templateUrl: './showqueue.component.html', + styleUrls: ['./showqueue.component.css'] +}) +export class ShowqueueComponent implements OnInit { + yourqueueNumber: any; + currentlyAttendedQueueNumber="Q001"; + minEstimatedTime:number; + event:any; + queueDetail:any; + asyncResult:any; + + + constructor(private router:Router,private showQueueService:ShowqueueService) { } + + + + ngOnInit(): void { + this.queueDetail=JSON.parse(localStorage.getItem('currentQueueDetail')); + this.event=JSON.parse(localStorage.getItem('currentEvent')); + this.minEstimatedTime=parseInt(this.queueDetail.minEstimatedTime)*60; + + } + + goBackToEvents(){ + this.router.navigate(['/events']); + } + + async leaveQueue(){ + console.log("inside Leave Queue"); + console.log(this.queueDetail.id); + this.asyncResult=await this.showQueueService.deleteQueue(this.queueDetail.id).toPromise(); + console.log("after deleting queue detail of "+this.queueDetail.id); + this.router.navigate(['/events']); + localStorage.removeItem('currentQueueDetail'); + localStorage.removeItem('currentEvent'); + let visitor=JSON.parse(localStorage.getItem('LoggedInUser')); + localStorage.removeItem('queueDetail_'+this.event.id+'_'+visitor.id); + } + +} diff --git a/node_development/node_frontend/src/assets/.gitkeep b/node_development/node_frontend/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/node_development/node_frontend/src/environments/environment.prod.ts b/node_development/node_frontend/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/node_development/node_frontend/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/node_development/node_frontend/src/environments/environment.ts b/node_development/node_frontend/src/environments/environment.ts new file mode 100644 index 0000000..df16999 --- /dev/null +++ b/node_development/node_frontend/src/environments/environment.ts @@ -0,0 +1,18 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + + +export const environment:{production: boolean, baseUrlRestServices: string} = { + production: false, + baseUrlRestServices: 'http://localhost:3000/v1' +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/node_development/node_frontend/src/favicon.ico b/node_development/node_frontend/src/favicon.ico new file mode 100644 index 0000000..997406a Binary files /dev/null and b/node_development/node_frontend/src/favicon.ico differ diff --git a/node_development/node_frontend/src/index.html b/node_development/node_frontend/src/index.html new file mode 100644 index 0000000..91e9951 --- /dev/null +++ b/node_development/node_frontend/src/index.html @@ -0,0 +1,14 @@ + + + + + Queue + + + + + + + + + diff --git a/node_development/node_frontend/src/main.ts b/node_development/node_frontend/src/main.ts new file mode 100644 index 0000000..c7b673c --- /dev/null +++ b/node_development/node_frontend/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/node_development/node_frontend/src/polyfills.ts b/node_development/node_frontend/src/polyfills.ts new file mode 100644 index 0000000..03711e5 --- /dev/null +++ b/node_development/node_frontend/src/polyfills.ts @@ -0,0 +1,63 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/node_development/node_frontend/src/styles.css b/node_development/node_frontend/src/styles.css new file mode 100644 index 0000000..90d4ee0 --- /dev/null +++ b/node_development/node_frontend/src/styles.css @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/node_development/node_frontend/src/test.ts b/node_development/node_frontend/src/test.ts new file mode 100644 index 0000000..50193eb --- /dev/null +++ b/node_development/node_frontend/src/test.ts @@ -0,0 +1,25 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + (id: string): T; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/node_development/node_frontend/tsconfig.app.json b/node_development/node_frontend/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/node_development/node_frontend/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/node_development/node_frontend/tsconfig.json b/node_development/node_frontend/tsconfig.json new file mode 100644 index 0000000..f69f654 --- /dev/null +++ b/node_development/node_frontend/tsconfig.json @@ -0,0 +1,20 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2015", + "module": "es2020", + "lib": [ + "es2018", + "dom" + ] + } +} diff --git a/node_development/node_frontend/tsconfig.spec.json b/node_development/node_frontend/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/node_development/node_frontend/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/node_development/node_frontend/tslint.json b/node_development/node_frontend/tslint.json new file mode 100644 index 0000000..277c8eb --- /dev/null +++ b/node_development/node_frontend/tslint.json @@ -0,0 +1,152 @@ +{ + "extends": "tslint:recommended", + "rulesDirectory": [ + "codelyzer" + ], + "rules": { + "align": { + "options": [ + "parameters", + "statements" + ] + }, + "array-type": false, + "arrow-return-shorthand": true, + "curly": true, + "deprecation": { + "severity": "warning" + }, + "eofline": true, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "import-spacing": true, + "indent": { + "options": [ + "spaces" + ] + }, + "max-classes-per-file": false, + "max-line-length": [ + true, + 140 + ], + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-empty": false, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-switch-case-fall-through": true, + "no-var-requires": false, + "object-literal-key-quotes": [ + true, + "as-needed" + ], + "quotemark": [ + true, + "single" + ], + "semicolon": { + "options": [ + "always" + ] + }, + "space-before-function-paren": { + "options": { + "anonymous": "never", + "asyncArrow": "always", + "constructor": "never", + "method": "never", + "named": "never" + } + }, + "typedef": [ + true, + "call-signature" + ], + "typedef-whitespace": { + "options": [ + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ] + }, + "variable-name": { + "options": [ + "ban-keywords", + "check-format", + "allow-pascal-case" + ] + }, + "whitespace": { + "options": [ + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type", + "check-typecast" + ] + }, + "component-class-suffix": true, + "contextual-lifecycle": true, + "directive-class-suffix": true, + "no-conflicting-lifecycle": true, + "no-host-metadata-property": true, + "no-input-rename": true, + "no-inputs-metadata-property": true, + "no-output-native": true, + "no-output-on-prefix": true, + "no-output-rename": true, + "no-outputs-metadata-property": true, + "template-banana-in-box": true, + "template-no-negated-async": true, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true, + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ] + } +}